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:

解决办法:


6Signature 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的

希望对大家有用哈。