2016-09-02 19 views
0

我使用當前應用程序版本和風味名稱撰寫.apk文件名。我想添加當前的ABI拆分名稱,但前提是它是通用的apk。如何在Gradle輸出中獲取ABI名稱迭代器

我的相關build.gradle部分:

buildTypes { 
    release { 
     applicationVariants.all { variant -> 
      variant.outputs.each { output -> 
       def flavor = .... // some code to parse flavor & determine an appropriate string from it 
       output.outputFile = new File(output.outputFile.parent, "app_" + flavor + "_0" + variant.versionCode + ".apk") 
      } 
     } 
    } 
} 
productFlavors { 
    deploy { 
     splits { 
      abi { 
       enable true 
       reset() 
       include 'armeabi-v7a' //select ABIs to build APKs for 
       universalApk true //generate an additional APK that contains all the ABIs 
      } 
     } 
    } 
} 

目前這款配置生成兩個.apks,但它們都具有相同的文件名,因爲我不知道怎麼去ABI的名字,所以一個後產生覆蓋之前生成的那個。

那麼,目前ABI拆分的等效variant.productFlavors.get(0)是什麼?

回答

4

這是風味和ABI-名字很奇怪的自動添加到建立名稱(如果你作出相應組裝)

你能嘗試完全刪除您定製的命名

applicationVariants.all { variant -> 
      variant.outputs.each { output -> 
       def flavor = .... // some code to parse flavor & determine an appropriate string from it 
       output.outputFile = new File(output.outputFile.parent, "app_" + flavor + "_0" + variant.versionCode + ".apk") 
      } 
     } 

,取而代之的是嘗試添加到defaultConfig此行

archivesBaseName = "app_${versionCode}" 

如果這不會解決你的問題,你可以嘗試從輸出

0123得到ABI ​​
+0

謝謝,getFilter thingy很好地工作:) – velis

+1

> output.getFilter(com.android.build.OutputFile.ABI)<它適用於我,thanx! –