最近遇到一个合作项目,公司的项目是依赖于Androidx,合作公司的项目是依赖于support,需要我将公司项目回退到依赖于support,我把gradle.properties中关于引用Androidx的两个属性
android.useAndroidX=true
android.enableJetifier=true
改成了false,并且将app下的build.gradle中依赖于Androidx的库一一替换成support的库,将项目中所有关于引用Androidx的地方改成了support对应的,最后编译项目没问题,run的时候还是会报错,提示
Execution failed for task ':testlibrary:generateDebugRFile'. > This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled. Set this property to true in the gradle.properties file and retry. ? The following AndroidX dependencies are detected: androidx.appcompat:appcompat:1.1.0, androidx.versionedparcelable:versionedparcelable:1.1.0, androidx.fragment:fragment:1.1.0, androidx.core:core:1.2.0, androidx.annotation:annotation-experimental:1.0.0, androidx.customview:customview:1.0.0, com.google.android.material:material:1.2.1, androidx.interpolator:interpolator:1.0.0, androidx.loader:loader:1.0.0, androidx.viewpager2:viewpager2:1.0.0, androidx.activity:activity:1.0.0, androidx.drawerlayout:drawerlayout:1.0.0, androidx.collection:collection:1.1.0, androidx.viewpager:viewpager:1.0.0, androidx.cardview:cardview:1.0.0, androidx.arch.core:core-common:2.1.0, androidx.savedstate:savedstate:1.0.0, androidx.annotation:annotation:1.1.0, androidx.lifecycle:lifecycle-common:2.1.0, androidx.appcompat:appcompat-resources:1.1.0, androidx.lifecycle:lifecycle-livedata:2.0.0, androidx.lifecycle:lifecycle-viewmodel:2.1.0, androidx.lifecycle:lifecycle-livedata-core:2.0.0, androidx.arch.core:core-runtime:2.0.0, androidx.recyclerview:recyclerview:1.1.0, androidx.cursoradapter:cursoradapter:1.0.0, androidx.vectordrawable:vectordrawable-animated:1.1.0, androidx.lifecycle:lifecycle-runtime:2.1.0, androidx.coordinatorlayout:coordinatorlayout:1.1.0, androidx.vectordrawable:vectordrawable:1.1.0, androidx.transition:transition:1.2.0
* Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
后来检查了一遍,原来是依赖的第三方开源库使用了Androidx,导致项目报错。
解决方法:在terminal中用
gradlew -q :app:dependencies
命令查看项目中依赖的第三方开源库中的依赖项(app为模块名),将有依赖于Androidx的第三方开源库替换成依赖于support的库就解决了
|