14 Android/IOS常见报错: Exception 与 NSException

Android
1 Error:Execution failed for task ':app:preDebugAndroidTestBuild'.
Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and test app (27.1.1) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.

解决:
android {}
configurations.all {
    resolutionStrategy.force 'com.android.support:support-annotations:27.1.1'
}
dependencies {}

2 程序包 org.apache.http 不存在
Android sdk 22 以后删除了httpClient的jar包

需要配置
    compileSdkVersion 26
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
3 访问不到模块 超类的父类方法
因为模块中 implementation jar 所以访问不到
需要 改为api
4 butterknife bindView 之后还是报空指针
在项目的gradle文件的dependencies中增加
dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
app 的build.gradle中配置
    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
    
5 jni 找不到路径
如果从Eclipse 转入过来的项目,so已经放入到jniLibs 中,记得删除以下
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
当lib中有so ,比如引入aar 中有so时,再增加此配置

6 unable to merge dex
原因:重复依赖导致
通过run -r stacktrace 可以看到具体是哪个的依赖重复
一般情况是,子模块与app 模块 重复引用导致
方案:通过api方式引用Module和Moduel中的库,将app中的库依赖去掉,只保留Module中的依赖


7 调用.so 文件时报错has text relocations
原因:so的使用的是低版本sdk
需要将targetSdkVersion 降低到对应SDK即可
常常是SDK= 22

——————————————————

IOS 待更新

猜你喜欢

转载自blog.csdn.net/qq_42022061/article/details/83108430