Error: Program type already present: android.support.v4.app.INotificationSideChannel
错误原因:support和androidX包冲突引起的,出现在AS3.0+
解决方法:若项目使用AndroidX的则将原有support系列依赖移除
移除相关包之后*.java文件报错,再重新导包就好
若暂时不考虑迁移至AndroidX(高版本AS新建项目默认使用AndroidX),请在如下修改项目gradle.properties文件:
#是否使用AndroidX库
android.useAndroidX=false
#是否迁移第三方库
android.enableJetifier=false
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/loader/app/LoaderManager;
Didn't find class "androidx.loader.app.LoaderManager" on path: DexPathList[[zip file "/data/app/com.trc.myapplication-2/base.apk"],nativeLibraryDirectories=[/data/app/com.trc.myapplication-2/lib/arm, /data/app/com.trc.myapplication-2/base.apk!/lib/armeabi, /vendor/lib, /system/lib]]
问题描述:首先是项目里面用到了几个so文件以及ndk相关,开始看到arm等错误信息误以为是相关so包不兼容导致的各种排查无解,然后看到****x之类的文件找不到,上面只是两重错误情况前后一个问题出现了4种错误。
解决方案:
第一步:首先看看的app下build.gradle 里面androidX依赖的是哪个版本,最优选stable版本,本人项目中使用的是beta版本且是最新的beta版本如下,更改为1.0.0就好了
//使用1.0.0虽然也是beta版本但若使用1.1.0在包不冲突的情况下依然会出现第一种错误情况(仅指不与support包冲突)
// implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
第二步:解决和spport的冲突尽量使用androidx..代替support
// implementation 'com.android.support:appcompat-v7:28.0.0'//和andoirdX冲突