1. 程式人生 > >android studio3.0(二)Cannot set the value of read-only property 'outputFile'

android studio3.0(二)Cannot set the value of read-only property 'outputFile'

接著說android studio3.0更新以後個人在使用的過程中遇到的坑,大多數還是因為Gradle外掛的升級導致一些配置的改變。

像以往一樣,在gradle中配置打包apk時的輸出路徑和apk的名字,配置語句樣例:

圖1

圖2

但是不同以往的是之前沒有問題的配置語句現在用起來卻遇到了問題:

圖3

在Stack Overflow上得到答案:

https://stackoverflow.com/questions/44239235/android-gradle-3-0-0-alpha2-plugin-cannot-set-the-value-of-read-only-property

然後在android developer官網android studio3.0的使用說明處找到同樣的答案:

圖4

請自行翻譯吧,我感覺主要在說gradle3.0的api變化了,對outputFile物件的訪問在某些情況下不再適用了,但是將each改為all的話,像編譯apk名字這種"簡單的task"還是可用的。

於是將圖1中的配置語句改為:

圖5

重新sync後編譯通過。

說明:

①上面的配置預設apk的輸出路徑是app/build/outputs/flavorName/release(或者debug),可自行更改成任意自己想要的路徑,比如:

圖6

②outputFileName是配置all的情況下的全域性屬性(?),可以直接使用。但如果是在each條件下,則沒有這個屬性;

③在圖1中用的是output.outputFile = new File(...,...),經過自測,3.0以後即使將上述的each改為all以後還是不能給它重新賦值,它是read-only的,只能用outputFileName這個屬性。