Library projects cannot set applicationId. applicationId is set to 'com.example.mylogin' in default
在导入一个项目时,提示“Error:Library projects cannot set applicationId. applicationId is set to ‘com.xxx.yyy’ in default config.”,显然,library的build.gradle中不能指定“applicationId”。
Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.12.0.aar ->
这类错误怎么处理?
在Android开发中,遇到“Duplicate class android.support.v4.app.INotificationSideChannel found in mod”这个错误通常是因为你的项目中包含了重复的类或者库。这个问题经常发生在将多个库或模块合并时,特别是当你使用了Android Support库的不同版本或者在项目中同时使用了旧版的Android Support库和新的AndroidX库时。
解决方案
-
统一使用AndroidX库:
Android Support库已经过时,官方推荐使用AndroidX库。如果你的项目中还在使用Support库,建议迁移到AndroidX。你可以使用Android Studio的迁移工具来自动完成这一过程。
-
在Android Studio中,打开
Refactor
->Migrate to AndroidX
。 -
跟随向导完成迁移。
-
-
移除重复的库:
如果你不想迁移到AndroidX,需要检查并移除项目中重复的库引用。这可以通过以下步骤完成:
-
检查
build.gradle
文件:查看所有模块的dependencies
部分,确保没有重复引入同一个库的不同版本。例如,确保没有同时包含androidx.core:core
和com.android.support:support-core-utils
。 -
使用Gradle依赖树分析:在Android Studio的Terminal中运行以下命令来查看项目的依赖树:
./gradlew app:dependencies
查找
android.support.v4
或androidx.core
的重复条目,并决定保留哪一个版本。 -
手动移除:在
build.gradle
文件中注释掉或删除不需要的依赖项。
-
-
清理和重建项目:
在解决了依赖问题后,清理并重建你的项目。在Android Studio中,你可以使用
Build
->Clean Project
和Build
->Rebuild Project
。 -
确保一致性:
在所有模块中保持一致的依赖版本,特别是那些涉及到Android Support库和AndroidX库的部分。
示例
如果你的build.gradle
文件中出现了类似以下的配置:
//
最终我的解决方案:gradle.properties中配置:
android.useAndroidX=true
android.enableJetifier=true
那么为什么配置这个属性就可以解决这个问题:
android.enableJetifier 是一个在 gradle.properties 文件中配置的属性,用于自动迁移现有的第三方库以支持 AndroidX。当你设置 android.enableJetifier=true 时,Gradle 构建系统会尝试将所有依赖项从旧的支持库(例如 com.android.support)重写为使用 AndroidX 库。
原文链接:https://blog.csdn.net/sunboylife/article/details/146551346