2016-10-26 16 views
1

少し前に、Android Studioが生成するapkの名前を変更するために、このスクリプトスニペットをgradleに書きました。これは、次のデータでAPKの名前を変更します。Androidスタジオでapkの名前を変更

  • ビルドタイプ
  • バージョンbuild.gradleで

あなたは10時47分で、今日(26-10-2016)をコンパイルする場合、あなたは味に応じて、以下のファイル名を取得し、あなたが選択したタイプを構築
android { 

    ... 

    buildTypes { 
     release { 
      minifyEnabled true 
      ... 
     } 
     debug { 
      minifyEnabled false 
     } 
    } 

    productFlavors { 
     prod { 
      applicationId "com.feraguiba.myproject" 
      versionCode 3 
      versionName "1.2.0" 
     } 
     dev { 
      applicationId "com.feraguiba.myproject.dev" 
      versionCode 15 
      versionName "1.3.6" 
     } 
    } 

    applicationVariants.all { variant -> 
     variant.outputs.each { output -> 
      def project = "myProject" 
      def SEP = "_" 
      def flavor = variant.productFlavors[0].name 
      def buildType = variant.variantData.variantConfiguration.buildType.name 
      def version = variant.versionName 
      def date = new Date(); 
      def formattedDate = date.format('ddMMyy_HHmm') 

      def newApkName = project + SEP + flavor + SEP + buildType + SEP + version + SEP + formattedDate + ".apk" 

      output.outputFile = new File(output.outputFile.parent, newApkName) 
     } 
    } 
} 

  • をデバッグDEV: myProject_ dev_debug_1.3.6 _261016_1047.apk
  • のdevのリリース:myProject_ dev_release_1.3.6 _261016_1047.apk
  • PRODデバッグ:myProject_ prod_debug_1.2.0 _261016_1047.apk
  • PRODリリース:myProject_ prod_release_1.2.0 _261016_1047.apk

注:整列していないバージョンのapk名がまだデフォルトの一つです。

名前の変更はうまくいき、正しい名前でapkが生成されますが、「プロジェクトを実行」をクリックするとAndroidスタジオがデバイスにapkをインストールできないことが問題です。それは、次のメッセージを表示して文句を言う:

APKファイルC:\ユーザーは\ XXX \ AndroidStudioProjects \ XXX \ \出力を構築\ APK \ myProject_dev_debug_1.3.6_191016_1047.apkは、ディスク上に存在しません。

エラー発生した1が "myProject_dev_debug_1.3.6_ 1016_1047.apk" あるとき "myProject_dev_debug_1.3.6_ 1016_1047.apk" の検索などない理由APK

をインストール中?? ?私は何かを逃していると私は何がわからない。

「プロジェクトのクリーンアップ」または「プロジェクトの再構築」を実行しても問題は解決しません。私が見つけた唯一の回避策は、apkの名前を少し変更するためにスクリプトを変更することです。

注:Androidスタジオ2.1.3とgradle 2.1.3を使用しています。

答えて

1

Gradle-Furyには、成果物+亜種+デバッグ/リリース+バージョンの両方に名前を付けるフックがあります。借りるか、それを完全に使う価値があるかもしれません。

https://github.com/gradle-fury/gradle-fury/blob/master/gradle/maven-support.gradle

免責事項、私はそれはクールに見える

+0

それに取り組んでいます。しかし、それを使用するためにいくつかのヒントを表示できますか? – Fer

関連する問題