博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
升级到AndroidStudio3.0 之后的遇到问题的处理(新建、方法数限制等)
阅读量:6243 次
发布时间:2019-06-22

本文共 3414 字,大约阅读时间需要 11 分钟。

  • 引言:

从AS2.3升级到3.0后,3.0还是不稳定,遇到一些bug:

总结帖如下:

遇到的新问题:

  • 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的依赖都导入;
constraint的依赖

  • 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 truedependencies {    compile 'com.android.support:multidex:1.0.0'}

Application 类重写方法:

@Overrideprotected 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能解决这个冲突;

转载地址:http://sapia.baihongyu.com/

你可能感兴趣的文章
Struts2中Action访问Servlet API的三种方法
查看>>
个性化自己系统的ContextLoaderListener实现
查看>>
Java之final修饰
查看>>
CentOS下添加用户并且让用户获得root权限
查看>>
5月29早上VM HA故障
查看>>
mysqldump参数详解
查看>>
new begin
查看>>
List集合按Size分组
查看>>
windows下安装jandgo
查看>>
【译】你可以用GitHub做的12件 Cool 事情
查看>>
看图你就明白一个光棍的道理 [图片]
查看>>
ul宽度不固定,li的数量不定要保持居中???
查看>>
mysql多实例的作用和问题
查看>>
[置顶] ApplicationResources_zh_CN.properties乱码问题
查看>>
我的友情链接
查看>>
当寂寞不得不成为一种习惯
查看>>
oracle的序列号(sequence)
查看>>
MyEclipse启动tomcat发生Socket bind failed: [730048]
查看>>
树莓派连接到手机屏幕
查看>>
MyBatis学习整理0
查看>>