android:Program type already present: android.support.v4.app.INotificationSideChannel
Posted 你永远想象不到,一个光鲜亮丽的Application,有多么
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。
以上是关于android:Program type already present: android.support.v4.app.INotificationSideChannel的主要内容,如果未能解决你的问题,请参考以下文章
Android Program type already present问题解决
Android Program type already present问题解决
swift 来自https://stackoverflow.com/questions/26345189/how-do-you-update-a-coredata-entry-that-has-alr
如何将我的 def clean_slug 函数包含到我的视图或模板中,以便它可以工作并显示“title alr exists”
同一系统下如何运行多个Neo4j数据库&Caused by: org.neo4j.helpers.PortBindException: Address 0.0.0.0:7687 is alre