ビジュアルツールを使用してapkファイルを公式の署名付きでパッケージ化することに加えて、AndroidStudioはGradleビルドツールを使用してそれらをパッケージ化することもできます。
1.Gradleパッケージ構成
app \ build.gradleファイルにAndroidクロージャーを追加します。
signingConfigs {
debug {
storeFile file(KEY_PATH)//签名文件路径
storePassword KEY_PASS
keyAlias ALIAS_NAME
keyPassword ALIAS_PASS //签名密码
v1SigningEnabled true
v2SigningEnabled true
println("--- signingConfigs.debug ---")
}
release {
storeFile file(KEY_PATH)//签名文件路径
storePassword KEY_PASS
keyAlias ALIAS_NAME
keyPassword ALIAS_PASS //签名密码
v1SigningEnabled true
v2SigningEnabled true
println("--- signingConfigs.release ---")
}
}
buildTypes {
release {
minifyEnabled false
multiDexEnabled true
signingConfig signingConfigs.release
//proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
multiDexEnabled true
signingConfig signingConfigs.debug
//proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
右側のツールバーで[Gradle]-> [プロジェクト名]->:app-> [Tasks]-> [other]をクリックし、[assembleRelease]をダブルクリックしてパッケージ化を開始します。(Gradleの下位バージョンのパスは次のとおりです:Gradle->プロジェクト名->:app->タスク->ビルド)
2.apkファイル名の名前を変更します
デフォルトで生成されるapkファイルは\ project name \ app \ build \ outputs \ apk \ releaseフォルダーにあり、名前はapp-release.apkです。デフォルトのapk名を変更するために、Androidクロージャーに追加できます。
applicationVariants.all { variant ->
variant.outputs.all { output ->
//def outputFile = output.outputFile
//if (outputFile != null && outputFile.name.endsWith('.apk')) {
if (variant.buildType.name == 'release') {
def fileName = "app_${defaultConfig.versionCode}_${defaultConfig.versionName}_.apk"
outputFileName = fileName
}
//}
}
}
ハイバージョンは注意を払う必要があります
1.下位バージョンでは、2行目の各メソッドをallメソッドに変更し、下位バージョンの名前付けメソッドoutput.outputFile = new File(outputFile.parent、fileName)をoutputFileName = fileNameに変更する必要があります。 ;
2. output.outputFileメソッドを削除する必要があります。削除しないと、次のエラーが報告されます。output.outputFileの特定の実装では、variantOutput.getPackageApplication()を呼び出す必要があるためです。将来的にはライブラリアップグレードの互換性の問題が発生する可能性があるため、今のところこの呼び出しを回避できます。
WARNING: API 'variantOutput.getPackageApplication()' is obsolete and has been replaced with 'variant.getPackageApplicationProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
To determine what is calling variantOutput.getPackageApplication(), use -Pandroid.debug.obsoleteApi=true on the command line to display more information.
Affected Modules: app