android studio 升级到 3.5.0,遇到的问题和解决方案

     一直忙于开发as一直没有升级,这几天有时间正好as发布新版本3.5.0,把as升级的到3.5.0也遇到一系列问题,在这里发问题分享一下,你们能够借鉴一下。java

一、依赖包的引用问题android

(1)compile  不推荐使用 ,api 是和compile彻底等效的,怕出问题的话能够用api替换,表示其余的模块也能够引用。git

若是肯定只在本模块中引用能够用 implementation替换,module中能够彻底用implementation,library看状况而定。github

(2)testCompile 用 testimplementation替换。api

(3)instrumentTest 用 androidTest替换app

二、项目的gradle 把gradle和plugin升级到最新版jvm

classpath 'com.android.tools.build:gradle:3.5.0'
 classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
 classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'

kotlin_version能够升级到 '1.3.41'maven

gradle中引用implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"替换为
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"gradle

三、gradle升级 Minimum supported Gradle version is 5.4.1. Current version is 4.1.ui

能够下载gradle 5.4.1本地引用,也能够在设置中使用 as推荐的 Use Default gradle wrapper

四、清单文件设置  AndroidManifest

图

移除清单文件中user-sdk设置。

五、设置各个library中的minsdk和targetsdk,最好和主项目中的一致

六、AAPT: error: unexpected element <uses-sdk> found in <manifest><application>.

缘由是在清单文件中的application中引用的<users-sdk>,不规范使用,形成清单文件没法mager,编译不经过。在找了项目中的所用清单文件后没有发现这个问题。最后在一个引用的.aar文件中发现了这个问题,把.aar改成.zip解压修改后再改为.aar就行了。

七、Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details.

缘由是library中的compile改成implementation后住moudle没法调用引发的,改成api就好了。

八、as在编译过程当中报OOM,gc什么的问题,好像as 3.5.0对内存要求更高了。

在gradle.properties加入如下配置视本身电脑配置而定:

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true