1. Failed to transform ‘xxx/old.jar’ using Jetifier. Reason: XXX
android.useAndroidX=true
这一句代表启用AndroidX,而后
android.enableJetifier=true
代表工程中的三方库将自动转换为支持AndroidX的形式
而这一过程中我们可能会遇到类似下边的这种错误:
Failed to transform ‘xxx/old.jar’ using Jetifier. Reason: XXX
网上有建议直接
android.enableJetifier=true
这种方法过于粗暴,建议通过设置黑名单的形式规避掉那些不支持AndroidX的三方库
android.jetifier.blacklist = annotation-experimental-1.3.0.aar
2. attr/lStar not found 的问题
这个问题一般是由于 androidx.core 版本不兼容所致
我们可以通过强制程序使用1.6.0版本的方法来解决这个问题
configurations.all {
resolutionStrategy {
force 'androidx.core:core:1.6.0'
}
}
dependencies {
...............
3. annotationProcessors.json 不存在的相关问题
这个问题的完整错误描述如下:
app\build\intermediates\annotation_processor_list\debug\annotationProcessors.json' specified for property 'processorListFile' does not exist.
通过删除工程目录下的 .gradle 文件夹可以解决,注意:是工程目录下的点gradle,千万不要删除总的.gradle,或者是工程目录下不带点的gradle = =!
4. Compatible side by side NDK version was not found
gradle3.x 会报这个错误,这里建议使用 gradle4.x 以上版本,会针对缺失的NDK版本实施自动下载。
gradle版本对应关系参见这篇文章:
5. The minCompileSdk (31) specified in a dependency‘s AAR metadata
网上说需要更新最新版的 Android SDK。冷静下来找了下原因,发现gradle依赖配置引用了最新的ktx库
# implementation "androidx.core:core-ktx:+"
implementation "androidx.core:core-ktx:1.7.0"
这样以来本地的SDK版本必定是偏低的,修改为合适的版本即可,如果用不到这个库可以直接屏蔽掉。
没弄懂原理就急着用网上找来的通用方法,只会让你从一个坑跳进另一个坑
6. Execution failed for task ':app:compressDebugAssets'
gradle插件与gradle版本不匹配引发的,网上一个参考匹配版本:
Android Gradle plugin version to 4.0.2 and the Gradle version to 6.1.1
android - Execution failed for task ':app:compressDebugAssets' - Stack Overflow
参考文章:
android - Compatible side by side NDK version was not found. Default is 20.0.5594570 - Stack Overflow
android studio - A problem was found with the configuration of task ':app:compileDebugJavaWithJavac' - Stack Overflow