Android项目常见问题解决办法

Android项目常见问题解决办法

目录

Android项目常见问题解决办法

1.Android Studio 2021开发版本

2.Android Studio 2024开发版本

(1)修改app/build.gradle文件

(2)修改build.gradle文件

(3)修改gradle/wrapper/gradle-wrapper.properties文件

3.解决dlopen failed: library "libomp.so" not found

(1)解决方法1

(2)解决方法2(不推荐)


1.Android Studio 2021开发版本

 项目原始Android开发版本Android Studio 、SDK、NDK和CMake相关版本信息,请参考: 

历史版本:Android Studio 下载文件归档  |  Android Developers

  • Android Studio 4.1.1
  • JDK Java1.8(Jave 8) JAVA_VERSION="1.8.0_242"
  • CMake 3.18.1

PS:如果你升级到Android Studio 2024可能会出现编译异常 

 


2.Android Studio 2024开发版本

如果你的Android Studio是2024版本,或者更高版本,请参考如下修改文件

(1)修改app/build.gradle文件

增加NDK版本:

ndkVersion '21.1.6352462'

也可以在Project Structure修改NDK版本:

(2)修改build.gradle文件

将gradle升级到

classpath "com.android.tools.build:gradle:7.4.2"

 repositories增加镜像url地址:

maven { url 'https://maven.aliyun.com/repository/public' }

maven { url 'https://maven.aliyun.com/repository/google' }

(3)修改gradle/wrapper/gradle-wrapper.properties文件

将gradle-6.5-all.zip->升级到gradle-7.5-bin.zip

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip

修改完后,依次Clean Project-> Rebuild Project->Sync Project with Gradle files,即可正常build了


3.解决dlopen failed: library "libomp.so" not found

Android NDK开发时,如果开启多线程加速,需要用到openMP库,一些版本的差异,会出现dlopen failed: library "libomp.so" not found的错误,即找到libomp.so库

【尊重原则】转载请注明出处:解决dlopen failed: library “libomp.so“ not found_PKing666666的博客-CSDN博客_dlopen failed

解决方法有两种方式


(1)解决方法1

解决思路也很粗暴,直接将NDK里libomp.so拷贝到'src/main/jniLibs'或者'libs',即可解决问题。

比如我使用的是NDK版本是:android-ndk-r21e,在该目录下搜索libomp.so,

至于拷贝哪个处理器版本,需要根据你的平台选择,一般在abiFilters会指定 "armeabi-v7a", "arm64-v8a"平台,拷贝对应的版本即可;如果不存在,可以复制其他平台的libomp.so代替试试。

拷贝的目的地址,由jniLibs.srcDirs指定so库的位置:

  • jniLibs.srcDirs = ['src/main/jniLibs', 'libs']
    

举个例子:

  • 比如将【aarch64】里面的libomp库复制到项目src/main/jniLibs中的 "armeabi-v7a", "arm64-v8a"目录下(目录不存在,则新建),然后再运行测试(大部分手机都可以这么解决)
  • 如果还不能正常运行,则复制【arm】或者其他平台的libomp.so代替试试

(2)解决方法2(不推荐)

为了减小APK的大小,项目只适配了【"armeabi-v7a", "arm64-v8a" 】处理器架构库,这会导致部分手机不支持。build完成后,在app/build/intermediates/cmake/debug/obj可查看到已经编译且支持库;其中libomp.so可能因为一些差异导致没有生成或者没有找到

解决方法:

  1. 先删除之前build的中间产物:把app/.cxx和app/build目录都删除掉
  2. 注释掉app/build.gradle文件中:abiFilters "armeabi-v7a", "arm64-v8a" (这样就会生成所有处理器架构库,但打包APK会比较大)
  3. 重新build,run
  4. 重新查看app/build/intermediates/cmake/debug/obj,发现已经支持【"armeabi-v7a", "arm64-v8a","x86","x86_64"】等库

### 关于Riboseq数据处理的方法和工具 #### Riboseq简介 Riboseq是一种用于研究翻译组的技术,能够精确绘制核糖体在mRNA上的位置。这种技术对于理解基因表达调控至关重要。 #### 数据预处理方法 为了确保后续分析的有效性和准确性,在进行ribosome profiling (ribo-seq) 数据分析之前,通常需要对原始测序读段执行严格的质控措施并去除低质量部分以及接头序列[^1]。此外,由于rRNA会占据大量测序资源从而影响有效reads的比例,因此还需要特别注意去除这些非编码区域所对应的片段。一种有效的解决方案是在实验阶段采用专门设计的产品如riboPOOL来减少样本中的rRNA含量;而在计算层面,则可以利用像RiboDetector这样的软件工具来进行过滤操作[^2]。 #### 主要的数据处理流程 - **比对映射**:将经过初步清理后的短读段与参考基因组或转录本数据库相匹配。 - **峰检测**:识别那些具有显著富集特征的位置作为潜在的起始位点或者是其他重要的结构元件。 - **定量评估**:统计各个目标区域内被覆盖到的程度以反映其活跃程度。 - **差异比较**:对比不同条件下获得的结果找出有意义的变化趋势。 #### 推荐使用的生物信息学工具 - RiboTools: 提供了一套完整的命令行应用程序集合,支持从FASTQ文件输入直到最终报告输出整个过程自动化完成。 - RiboPipe: 集成了多种功能模块的一站式平台,适用于不同类型的研究需求。 - RiboSeqR: 基于R语言构建的一个包,便于研究人员快速实现常见任务的同时也允许高度定制化的扩展应用。 ```bash # 使用Bowtie2进行比对的例子 bowtie2 -x /path/to/reference/genome/index \ -U reads.fastq.gz \ --local \ -S output.sam ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI吃大瓜

尊重原创,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值