摘要:按照系统默认的完全可以,项目不会报错。不过的需要按照系统提示升级为升级为使用的冲突解决使用依赖如下并添加解决冲突这样做再安装的时候会报错如下只能手动在文件夹中添加的包,。最后的依赖如下才解决冲突正常使用希望能解决这个冲突
引言:
从AS2.3升级到3.0后,3.0还是不稳定,遇到一些bug:
总结帖如下:
android studio3.0 升级后的变化和坑
Android Studio3.0升级gradle遇到的坑
遇到的新问题:
1,新建项目报错:
Unable to resolve dependency for :app@debug/compileClasspath": Could not resolve com.android.support:appcompat-v7:26.1.0.;
Unable to resolve dependency for :constraint-layout: Could not resolve constraint-layout:1.0.2;
处理bug
1.1处理constraint-layout:1.0.2无法依赖的问题:
setting->System setting->android SDK->SDK Tools 最下面关于
constraint-layout的依赖都导入;
1.2处理其他无法依赖,在build.gradle文件中
1.2.1 appcompat-v7:26.1.0修改
implementation "com.android.support:appcompat-v7:26.1.0"
改为
implementation "com.android.support:appcompat-v7:26.+" androidTestImplementation
1.2.2 espresso-core修改
"com.android.support.test.espresso:espresso-core:3.0.1"
改为
androidTestImplementation "com.android.support.test.espresso:espresso-core:2.2.2"
1.2.3 runner修改
androidTestImplementation "com.android.support.test:runner:1.0.1"
改为
androidTestImplementation "com.android.support.test:runner:0.4"
1.3 总体修改bug如下:
dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "com.android.support:appcompat-v7:26.+" implementation "com.android.support.constraint:constraint-layout:1.0.2" testImplementation "junit:junit:4.12" androidTestImplementation "com.android.support.test:runner:0.4" androidTestImplementation "com.android.support.test.espresso:espresso-core:2.2.2" }
2,如果项目被android3.0编译过,重新用AS3.0以下的AS打开会报错如下:
Error:Jack is required to support java 8 language features. Either enable Jack or remove sourceCompatibility JavaVersion.VERSION_1_8
需要在
defaultConfig { applicationId "com.xxx" minSdkVersion 19 targetSdkVersion 24 versionCode 1 versionName "1.0" jackOptions { enabled true } }
需要添加
jackOptions {enabled true}
3,AS3.0超过方法数设置处理
以前如果遇超过方法数超过65535的解决办法一般是defaultConfig 中添加
multiDexEnabled true dependencies { compile "com.android.support:multidex:1.0.0" }
Application 类重写方法:
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
现在AS3.0好像没有这个限制
com.android.support:multidex:1.0.0这个包也无法依赖,
把依赖包、multiDexEnabled true、application中的东西全部删除就可以正常运行;
PS补充
Android Studio 3.0 最近升级为 3.0.1
新建项目报错问题,google已经修复。按照系统默认的dependencies完全可以gradle,项目不会报错。
不过gradle的version需要按照系统提示升级为4.1;
classpath 升级为"com.android.tools.build:gradle:3.0.1"
AS3.0使用Rxjava/Rxandroid的冲突解决:
使用Rxjava依赖如下:
implementation("com.squareup.retrofit2:adapter-rxjava:2.1.0") { exclude group: "io.reactivex" } implementation "io.reactivex:rxandroid:1.2.1" implementation "io.reactivex:rxjava:1.1.6"
并添加:packagingOptions { exclude "META-INF/rxjava.properties"}解决OS冲突:
android { compileSdkVersion 26 defaultConfig { applicationId "com.xxx.xxxxx.xxxxx" minSdkVersion 18 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" packagingOptions { exclude "META-INF/rxjava.properties" } }
这样做再安装apk的时候会报错如下:
java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
只能手动在libs文件夹中添加:rxandroid的jar包,buildPath。最后的依赖如下:
implementation("com.squareup.retrofit2:adapter-rxjava:2.1.0") { exclude group: "io.reactivex" } implementation "io.reactivex:rxjava:1.1.6" implementation files("libs/rxandroid-0.24.0.jar")
才解决冲突正常使用rxjava/RxAndroid;
希望Google能解决这个冲突;
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68044.html
摘要:适配的原则是优先黑名单和深灰名单,浅灰名单在官方未有替代之前可以暂时不适配,在上运行也不会有任何问题。除上面两种适配方式外,音乐目前采用了另外一种方式。隐私安全保护标识修改在中,对隐私保护又做了更加严格的要求。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由QQ音乐技术团队发表于云+社区专栏 上篇:Android P 行为变更适配 Android P 这次有很多行...
摘要:本月产品层面的升级主要集中在语言源码构建方面,全面支持和并兼容开发框架。研发团队在这一个月中对底层组件进行了升级与调整,修复了个中等级别以上的。因为这个焦点,有广泛的支持,规格易于实现。 全面支持一条命令安装云帮平台、调整SDN网络组件、8 个中等级别以上的bug修复、云帮社区版 迎来2017年3月升级版本,本次升级主要集中在平台底层服务,以及云帮的私有化安装部署的流程上,针对SDN网...
阅读 711·2021-11-22 13:52
阅读 1517·2021-09-27 13:36
阅读 2817·2021-09-24 09:47
阅读 2170·2021-09-22 15:48
阅读 3599·2021-09-22 15:39
阅读 1460·2019-08-30 12:43
阅读 2917·2019-08-29 18:39
阅读 3181·2019-08-29 12:51