如何在Android Studio中使用gradle-plugin 7.2.2 gradle版本7.3.3更改apk文件名

yc0p9oo0  于 2023-10-19  发布在  Android
关注(0)|答案(2)|浏览(158)

我正在使用Android Studio版本2021.2.1 Gradl 7.3.3和gradle-plugin 7.2.2
当我试图改变apk文件名在相同的方式,因为我已经做了它在早期的项目,我收到以下错误。
构建文件“...\app\build.gradle”行:34
配置项目“:app”时出现问题。
com.android.build.gradle.internal.dsl.AgpDslLockedException:添加新的生成类型为时已晚它们已用于配置此项目。考虑将此调用移动到finalizeDsl或在评估期间。
我无法找到我必须改变给予的apk文件一个新的文件名。我找到的所有内容都是针对我的build.gradle正在工作的旧版本的gradle。有没有一个教程或howto可以帮助我解决这个问题。

apply plugin: 'com.android.application'

android {

    compileSdkVersion 32

    defaultConfig {
        applicationId "..."
        minSdkVersion 19
        targetSdkVersion 32
        versionCode 1205
        versionName '1.2.05'
        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
    }

    signingConfigs {
        config {
            keyAlias 'alias'
            keyPassword 'pass'
            storeFile file(mykeystore.jks')
            storePassword '12345'
        }
    }

    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            applicationVariants.all { variant ->
                variant.outputs.all { output ->
                    project.ext { appName = 'myAppname' }
                    def formattedDate = new Date().format('yyyyMMdd_HHmmss')
                    // NEXT IST LINE 34 where the ERROR points to
                    def newName = "${globalScope.project.name}-${output.baseName-${variant.versionName}}.apk"
                    newName = newName.replace("app-", "$project.ext.appName-") 
                    newName = newName.replace("-release", "-release-" + formattedDate + "_" + versionName.replace(".",""))
                    outputFileName  = new File("../../../../release/" + newName)
                }
            }
            signingConfig signingConfigs.config
            zipAlignEnabled true
            pseudoLocalesEnabled true
        }

        debug {
            minifyEnabled false
            //useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            zipAlignEnabled true
            pseudoLocalesEnabled true
            debuggable true
            signingConfig signingConfigs.config
        }
    }
    productFlavors {
    }
}
zte4gxcn

zte4gxcn1#

buildTypes {

        debug {
            debuggable true
        }

        release {
//            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release

            android.applicationVariants.all { variant ->
                variant.outputs.all {
                    def date = new Date()
                    def formattedDate = date.format('yyyy-MM-dd')
                    outputFileName = "${variant.productFlavors[0].name}"  + formattedDate + "_${variant.name}_${variant.versionName}.apk"
                }
            }
        }
    }
r8uurelv

r8uurelv2#

我想你错过了一个“}”
这条线上

def newName = "${globalScope.project.name}-${output.baseName-${variant.versionName}}.apk"

正确的线必须是这样的

def newName = "${globalScope.project.name}-${output.baseName}-${variant.versionName}.apk"

这足以解决你的问题。至少对我有用

相关问题