android:Program type already present: android.support.v4.app.INotificationSideChannel

背景

这个错误的原因是:androidx和 android.support同时存在。
首先,网上有很多解答说这样处理:

在 gradle.properties 添加:
android.useAndroidX=true
android.enableJetifier=true
然后再build.gradle 中添加这个:
implementation "androidx.room:room-runtime:2.0.0-alpha1"
annotationProcessor "androidx.room:room-compiler:2.0.0-alpha1"

如果你是一个新项目,那么也许可以解决你的问题。
但如果是一个没有使用androidx的项目,而且项目比较大的情况,这会使得你更加糟糕。
因为这个配置,会使你进入androidx 开发模式下。这意味着你需要全部升级,我想这会是一个大的工程,这将会让你陷入一个泥潭中。

解决

我是在引入了一个库后,出现这个问题。这个库使用androidx,而我其他的库使用android.support,使得我的项目无法build。
比如:

implementation 'com.jakewharton:butterknife:10.2.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'

在高版本中,butterknife将使用androix。那么使用低版本可以解决这个问题,比如8.4.0。
ps:

在以后的版本中官方已经表明只支持androidx,如果项目不是非常大,或者有充足的时间,那么可以尝试升级。

总结

让我们在合理的条件下拥抱androidx。

原文地址:https://www.cnblogs.com/aoximin/p/12068011.html

时间: 2024-11-02 20:14:07

android:Program type already present: android.support.v4.app.INotificationSideChannel的相关文章

Error:Program type already present: android.arch.lifecycle.LiveData

Apparently, this is intended behavior: com.firebaseui:firebase-ui-firestore:3.1.0 depends on android.arch.lifecycle:extensions:1.0.0-beta1. Switching to version 3.2.2 fixes the issue by using the Lifecycle 1.1 libraries that Support Library 27.1.0 ar

安卓开发错误:The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved.

今天在使用低版本下的ActionBar,在继承ActionBarActivity时报了"The type Android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved. It is indirectly referenced from required .class files"错误,网上查了很久终于解决了. 问题根源:因为在复制项目的jar包时,把Eclipse下自带的android-supp

The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved.

把家里的代码拷贝到公司的时候遇到“The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved. It is indirectly referenced from required .class files”错误,网上查了很久终于解决了. 问题根源:因为在复制项目的jar包时,把Eclipse下自带的android-support-v4.jar包复制到了‘android-support-

[转]android.support.v4.app.Fragment和android.app.Fragment区别

1.最低支持版本不同 android.app.Fragment 兼容的最低版本是android:minSdkVersion="11" 即3.0版 android.support.v4.app.Fragment 兼容的最低版本是android:minSdkVersion="4" 即1.6版 2.需要导jar包 fragment android.support.v4.app.Fragment 需要引入包android-support-v4.jar 3.在Activity

Attempt to write to field 'android.support.v4.app.FragmentManagerImpl android.support.v4.app.Fragment.mFragmentManager' on a null object reference

E/AndroidRuntime﹕ FATAL EXCEPTION: mainProcess: org.example.magnusluca.drawertestapp, PID: 3624java.lang.NullPointerException: Attempt to write to field 'android.support.v4.app.FragmentManagerImpl android.support.v4.app.Fragment.mFragmentManager' on

Android Studio不识别support.v4.app.FragmentTabHost的问题。

用Android Studio实现底部标签页功能,同样的代码在Eclipse里面是没有问题的,现在在AS里面预览的时候总是报错:Exception raised during rendering: No tab known for tag null XML源码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andr

java.lang.ClassCastException:fragment cannot be cast to android.support.v4.app.Fragment

已启动APP后台就报了这个错误! java.lang.ClassCastException:fragment cannot be cast to android.support.v4.app.Fragment Java.lang.classcastexception:片段不能被转换为android.support.v4.app.fragment 原因是因为在使用继承Fragment的时候 导错包了:import android.support.v4.Fragment; 正确的包:import a

android.support.v4.app.Fragment 和 android.app.Fragment区别

今天在公司遇到一个android.app.Fragment 和android.support.v4.app.Fragment 的问题. (1)android.app.Fragment:兼容的最低版本是android:minSdkVersion="11"因此你的应用不能兼容3.0以下的应用. 可以使用<fragment>标签的,这点很重要,如果是用android.support.v4.app.Fragment的话,是不能是用<fragment>标签的,会抛出and

cannot be cast to android.support.v4.app.Fragment

android.app.Fragment as stated in the imports. Change the import to android.support.v4.app.Fragment