一直忙于开发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