昨天開會時,領導突然冒出一句“項目停止開發”,做了近一年的項目就這樣草草結束。離過年還有一個多月呢,就沒什麼事了。左右無事,就來升級下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的
希望對大家有用哈。