【问题标题】:Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated with android studio 3.1.3无法使用 android studio 3.1.3 为 ApkVariantOutputImpl_Decorated 设置只读属性“outputFile”的值
【发布时间】:2018-08-15 10:55:54
【问题描述】:

朋友们好,
当使用新的 android studio 版本为 3.1.3 的 proguard 规则时,我在 app.gradle 文件中遇到了一个问题。它在旧工作室版本 2.3.3 上正常工作。
我的完整错误 Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.

App.Gradle 文件:
android { ..................... buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-" + defaultConfig.versionName + ".apk")) } } } } }

感谢,

【问题讨论】:

    标签: android android-proguard android-studio-3.1.3


    【解决方案1】:

    对于 Gradle 3.0+**

    android {
    ...
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            applicationVariants.all { variant ->
                variant.outputs.all {
                    def formattedDate = new Date().format('yyyyMMddHHmmss')
                    def flavor = variant.name
                    def versionName = variant.versionName
                    outputFileName = "AppName_${versionName}_${flavor}_${formattedDate}.apk"
                }
            }
        }
    }
    ...
    }
    

    结果:

    AppName_release_1_20200121175123.apk

    【讨论】:

      【解决方案2】:

      变体输出不再提供 outputFile 属性。你应该能够得到它:

      def variantOutput = ...
      def outputFile
      
      try
      {
          outputFile = variantOutput.outputFile
      }
      catch (Exception ex)
      {
          def packageTask = variantOutput.packageApplication
          outputFile = packageTask.outputFile
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-29
        • 1970-01-01
        • 2022-09-29
        • 1970-01-01
        • 2020-01-02
        • 2013-02-26
        • 2020-09-18
        相关资源
        最近更新 更多