2016-09-02 9 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 
      } 
     } 
    } 
} 

は現在、この設定は2 .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") 
      } 
     } 

、代わりにそのことを命名作らこれははあなたの問題を解決しない場合は、あなたが出力

0123からABIを取得しようとすることができます

archivesBaseName = "app_${versionCode}" 

defaultConfigに次の行を追加しよう ​​

+0

ありがとうございます。 – velis

+1

> output.getFilter(com.android.build.OutputFile.ABI)

関連する問題