2017-10-26 17 views
16

Tôi đã sử dụng đoạn mã sau trong script gradle của tôi để đổi tên gói ứng dụng được tạo ra với AndroidStudio:Không thể thiết lập giá trị của thuộc tính chỉ đọc 'outputFile' cho ApkVariantOutputImpl_Decorated

applicationVariants.all { variant -> 
    variant.outputs.each { output -> 
     output.outputFile = new File(output.outputFile.parent, defaultConfig.versionCode + "_" + output.outputFile.name) 
    } 
} 

Vì vậy, nó được tạo ra gói ứng dụng được với những cái tên như : 345-app-release.apk, trong đó 345 là mã phiên bản.

Nhưng sau khi cập nhật lên AndroidStudio 3,0 nó sẽ trả về lỗi sau:

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.

Làm thế nào tôi có thể đạt được một đổi tên tương tự với các công cụ xây dựng mới.

Trả lời

46

Sử dụng output.outputFileName thay vì output.outputFile

+1

Nó được tạo ra lỗi sau đó, tôi cần thiết để giải quyết nó như sau: https://stackoverflow.com/a/46959050/2061089 – oli

10

Giải pháp cho Studio 3.0+ và Gradle 3.0+

Để thay đổi tên của APK trong Android

applicationVariants.all { variant -> 
    variant.outputs.each { output -> 
     output.outputFileName = new File(output.outputFile.parent, output.outputFile.name.replace("app-release.apk", "Your_name.apk")) 
    } 
} 
Các vấn đề liên quan