更新Android Studio是一件非常恐怖的事情,因为,你可能会和我一样,被各种莫名其妙的事情折腾一个下午,并且,这些东西,可能由于各种情况引起,在Google上不一定能直接搜到解决方法。
本文用于记录升级过程中遇到的问题。
1. Kotlin版本问题
No cached version of org.jetbrains.kotlin:kotlin-stdlib:1.1.3-2 available
现象:更新后,又是要我禁用Gradle在线更新,禁了之后又说找不到相关的缓存。
原因:
由于在升级之前,Android Studio内部设置了网络代理,而Android Studio升级有bug,会将旧版本的代理密码删除
解决:
在系统的Gradle目录下(如C:\Users\UserName\.gradle)内,找到gradle.properties文件,更新systemProp.https.proxyPassword=密码
2. SDK找不到
现象:
提示找不到Android SDK路径,然而已经配置了
解决:
Open Module Settings → 切换一个新的Compile SDK Version、Build Tools Version → 刷新即可
3. NDK问题
在升级到Android Studio 3.1.3版本后,使用了NDK的工程在编译时是通过的,但是在打包成APK时报错,提示
Caused by: java.io.IOException: Cannot run program "D:\AndroidSdk\ndk-bundle\toolchains\mips64el-linux-android-4.9\prebuilt\windows-x86_64\bin\mips64el-linux-android-strip" (in directory "D:\AsProjects\WowVideo\app"): CreateProcess error=2, 系统找不到指定的文件。
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
... 10 more
Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
at java.lang.ProcessImpl.start(ProcessImpl.java:137)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 11 more
原因:
由于新版本的NDK删除了上述Log中相应的文件。
解决:
下载旧版本的NDK,并且将文件拷贝到对应的目录下。
下载地址:https://developer.android.com/ndk/downloads/older_releases,本次解决问题选择16版本,因为就是最新的17删除了该文件。
拷贝的位置:
\android-ndk-r16b-windows-x86_64\android-ndk-r16b\toolchains\mips64el-linux-android-4.9\prebuilt\windows-x86_64
→→→→→→
D:\AndroidSdk\ndk-bundle\toolchains\mips64el-linux-android-4.9\prebuilt\
Stackoverflow相关地址:
https://stackoverflow.com/questions/42739916/aarch64-linux-android-strip-file-missing
4.找不到文件GreenDao等注解生成的代码
- 删除Build文件夹,包括主module和project的
- File→Invalidate Cache/Restart → Invalidate Cache/Restart:清除缓存,重启Android Studio
- Rebuild
5. Aapt2Exception
Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
解决:
在gradle.properties上添加android.enableAapt2=false
Android Studio更新到3.2版本,Kotlin更新到1.2.71版
本次更新,折腾了1整体的时间才搞定了
6. 又找不到文件GreenDao等注解生成的代码
这次的报错提醒,在Build过程中提示是Kotlin相关,虽然我们工程中GreenDao相关的代码是用Java写的,所以有点蹊跷。这次是最惨烈的一次,一开始按照之前的经验去尝试修改,但是无效。重装JDK+Android Studio+Gradle+Android SDK+重启电脑,无效!!!最后是发现这个Kotlin的地方,拉了旧版本原本可以运行的代码也编译失败。最后在插件栏的地方意外发现一个实验性的功能,尝试关闭后,解决了!这也是更新了Kotlin之后带来的问题。
Tools -> Kotlin -> Enable migrations detection(experimental) 关闭勾选。
刚好看到这个experimental,实验性的功能,尝试关闭后,解决了。
7. XML转义字符问题
Process 'command 'D:\AndroidSdk\build-tools\27.0.3\aapt.exe'' finished with non-zero
解决方法:正确使用反斜杠\,反斜杠后面不可以有空格,单引号必须要用反斜杠去转义。
8. 代码提示-大小写敏感
最近换了台电脑,发现在代码提示的时候,总是有主意大小写问题,习惯了一直小写的,表示很蛋疼。
修改方法:
Setting → 搜 Code Completion → Case sensitive completion设置为None
9. 仓库拉不下来
Grande中配置的仓库如果拉不下来,可以考虑调整仓库repositories内的引用顺序,将新加入的提前,可能就可以解决问题了。当然啦,挂VPN也可以尝试下。