Android Studio从2.2.3升级到3.0.1遇到的问题
昨天开会时,领导突然冒出一句“项目停止开发”,做了近一年的项目就这样草草结束。离过年还有一个多月呢,就没什么事了。左右无事,就来升级下AS。(补充于2018-01-15:刚才又看到的博客https://www.jianshu.com/p/15afb8234d19)
开发阶段AS使用的版本是2.2.3的,升级使忘了使用AS的Help-->Check for update来直接升级,就将AS先卸载了,然后到AS中文社区下载了exe文件安装的。吐槽自己,太Low。
结果我安装后的版本是AS 3.0的。然后就遇到了如下问题:
1、gradle打包时,自定义apk名称报错:Cannot set the value of read-only property ‘outputFile’
解决办法如下:
2、AAPT编译报错:Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
解决办法:
在gradle.properties文件中关闭AAPT2编译:android.enableAapt2=false
3、apt插件问题(Error:Cannot choose between the following configurations of project :mylibrary:)
解决办法:
我自己项目的处理:
之前加上这个,是因为在使用butterknife时,得到的控件会报空指针异常,升级到3.0.1后,这里去掉,测试没问题。
4、前面说了,我先是升级的AS 3.0的,所以在前面三个问题解决后,遇到了第四个问题:
各种百度,SO等,都说是要加什么maven{url.......}或者google()什么的,都没用。最后又再次升了一次级,从Help--->Check for update里面升级到AS 3.0.1,
OK,问题解决。原来工程下面的classpath 'com.android.tools.build:gradle:3.0.1'版本要跟AS版本一致才OK。
5、Annotation processors must be explicitly declared now:
解决办法:
6、Signature Version安卓项目打包时的两种签名方式:
V1(Jar Signature): 传统通用方式。来自JDK。
V2(Full APK Signature): Android 7.0 引入的新方式。安装更快、验证方式更安全。不适用于旧安卓版本,且不强制。完整信息可参考
Android 7.0 开发者版本所以为了追求更完美的发挥,应将两个勾同时勾上。若不勾选V1,则旧安卓版本无法安装;若不勾选V2,则对于
Android7.0设备就舍弃了更快更安全的方式。
7、打debug测试包安装时提示:install_failed_test_only。
也就是说,只要在AndroidStudio3.0内,点击绿三角运行Run,跑出来的apk,一定是TEST_ONLY的
希望对大家有用哈。