背景

这个错误的原因是: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的更多相关文章

  1. Program type already present: android.support.v4.widget.EdgeEffectCompat

    1.确保所有依赖包的 implementation 'com.android.support:appcompat-v7:25.4.0'是一样的 2.确保最外层的build.gradle中增加如下代码: ...

  2. Error : Program type already present: android.support.design.widget.CoordinatorLayout$

    背景 因为公司一个app项目需要扩展,因为功能较多且较完整的流程与业务,而且和以前的业务关系不大,所以我整合到了 另外一个分包中(代号:newFunc,请注意是代号)进行依赖. 当我写完这部分业务开始 ...

  3. Error: Program type already present: android.arch.lifecycle.LifecycleRegistry$1

    com.firebaseui:firebase-ui-firestore:3.1.0 depends on android.arch.lifecycle:extensions:1.0.0-beta1. ...

  4. 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 ...

  5. Android Studio 编译: Program type already present: XXX 解决方案

    3情况1:个例 build.gradle 中 dependencies { classpath 'com.android.tools.build:gradle:3.1.1' // } 改成 depen ...

  6. Android开发之——依赖冲突Program type already present

    前言 实际开发中,为了提高开发速度和效率,总避免不了引用第三方提供的依赖和类库,如果含有相同依赖的类库被我们引用时,而他们的版本又不相同,就有可能会导致一系列问题和异常,本文结合本人时间总结和他人经验 ...

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

    今天在使用低版本下的ActionBar,在继承ActionBarActivity时报了"The type Android.support.v4.app.TaskStackBuilder$Su ...

  8. flutter upgrade之后出现Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from

    错误信息 Initializing gradle... Resolving dependencies... Running Gradle task 'assembleDebug'... /Users/ ...

  9. 在布局中使用android.support.v4.app.Fragment的注意事项

    1.Activity必须继承android.support.v4.app.FragmentActivity 2.fragment标签的name属性必须是完全限定包名,如下: <LinearLay ...

随机推荐

  1. jsp html 实现隐藏输入框,点击可以取消隐藏&&弹出输入框

    jsp代码: <script language="javascript" type="text/javascript"> function chg ...

  2. input 输入框 只能输入数字、字母、汉字等

    1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'')" onafte ...

  3. Netty学习——基于netty实现简单的客户端聊天小程序

    Netty学习——基于netty实现简单的客户端聊天小程序 效果图,聊天程序展示 (TCP编程实现) 后端代码: package com.dawa.netty.chatexample; import ...

  4. FastAdmin的基本使用

    FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架. 1.在线命名管理 (1)菜单的生成 (2)一键 crud  首先要安装在线命名 在翡翠分类生成菜单,如下: 它的 ...

  5. 《手把手教你》系列练习篇之9-python+ selenium自动化测试 -番外篇 - 最后一波啊!!!(详细教程)

    1. 简介 本来上一篇就是练习篇的最后一篇文章了,但是有的小伙伴私下反映说是做了那么多练习,没有一个比较综合的demo练练手.因此宏哥在这里又补存了一些常见的知识点进行练习,在文章最后也通过实例给小伙 ...

  6. v-bind和v-model的本质区别和作用域

    每篇一句 一场寂寞凭谁诉.算前言,总轻负. Vue视图数据展示方式和彼此的区别: {{插值表达式}} {{}}插值表达式里面 只能写表达式,不能写语句 文本输出,不会解析标签 不能作用在标签的属性上, ...

  7. Link Binary With Libraries中添加的时候 也找不到libz.dylib 库

    接到一个项目4个静态库找不到 在 Link Binary With Libraries中添加的时候 也找不到libz.dylib  郁闷了 原来是ios9后 原来的dylib后缀名的库全部修改tbd ...

  8. iOS开发之压缩与解压文件

    ziparchive是基于开源代码”MiniZip”的zip压缩与解压的Objective-C 的Class,使用起来非常的简单 方法:从http://code.google.com/p/ziparc ...

  9. go基础之不定参函数

    指定类型参数 任意类型参数的变参 go语言同其他编程一样也提供了对变参函数的支持.本文简单讲解一下go中变参函数的使用方法. 指定类型参数 不定参数是指函数传入参数的个数为不确定数量,个数需要在调用的 ...

  10. CSUOJ2031-Barareh on Fire(双向BFS)

    Barareh on Fire Submit Page Description The Barareh village is on fire due to the attack of the virt ...