错误:无法设置只读属性:com.android.build.gradle.managed.BuildType类的proguardFiles。

6
我正在尝试运行来自以下网址的AR示例应用程序:https://artoolkit.org/documentation/doku.php?id=4_Android:android_examples 我尝试打开ARSimpleProj项目,但它给出了以下错误提示:
Error:Cannot set readonly property: proguardFiles for class: com.android.build.gradle.managed.BuildType

我正在使用Android Studio 2.2.2和Gradle 2.14.1

谢谢!

3个回答

8
根据这个描述,在版本0.4.0中,'+='被禁用了,改为使用".add()"。所以将语句 proguardFiles += file('proguard-rules.pro') 修改为 proguardFiles.add(file('proguard-rules.pro')) 错误就会消失。
现在的build.gradle文件看起来像下面这样...注意变化..有2-3个变化,但现在完全正常工作。代码如下:
    apply plugin: 'com.android.model.application' 

    model {
        android {
            compileSdkVersion = 23
            buildToolsVersion = "23.0.2"
        defaultConfig.with {
            applicationId = "org.artoolkit.ar.samples.ARSimple"
            minSdkVersion.apiLevel = 15
            targetSdkVersion.apiLevel = 22
            versionCode = 1
            //Integer type incremented by 1 for every release, major or minor, to Google store
            versionName = "1.0" //Real fully qualified major and minor release description

            buildConfigFields.with {
                //Defines fields in the generated Java BuildConfig class, in this case, for
                create() {           //default config, that can be accessed by Java code
                    type = "int"     //e.g. "if (1 == BuildConfig.VALUE) { /*do something*/}".
                    name = "VALUE"
                    //See: [app or lib]/build/generated/source/buildConfig/[package path]/
                    value = "1"      //     BuildConfig.java
                }
            }
        }
    }

    android.buildTypes {
        release {
            minifyEnabled = false
            proguardFiles.add(file('proguard-rules.pro'))
        }
    }

    android.productFlavors {
    }

    android.sources {
        main{
            jni {
                source {
                    srcDirs = ['src/main/nop']
                }
            }
        }
        main{
            jniLibs {
                source {
                    srcDirs = ['src/main/libs']
                }
            }
        }
    }
}
dependencies {
    compile project(':aRBaseLib')
}

7

我之前也遇到了相同的错误。通过以下更改构建类型来解决 -

buildTypes {
        release {
            minifyEnabled false
            proguardFiles 'proguard-rules.pro'
        }
    } 

之后我删除了所有导入的ndk代码行。因此,aRSimple的build.gradle如下:

apply plugin: 'com.android.model.application'

model {
    android {
        compileSdkVersion = 23
        buildToolsVersion = "23.0.1"

        defaultConfig.with {
            applicationId = "org.artoolkit.ar.samples.ARSimple"
            minSdkVersion.apiLevel = 15
            targetSdkVersion.apiLevel = 22
            versionCode = 1
            //Integer type incremented by 1 for every release, major or minor, to Google store
            versionName = "1.0" //Real fully qualified major and minor release description

            buildConfigFields.with {
                //Defines fields in the generated Java BuildConfig class, in this case, for
                create() {           //default config, that can be accessed by Java code
                    type = "int"     //e.g. "if (1 == BuildConfig.VALUE) { /*do something*/}".
                    name = "VALUE"
                    //See: [app or lib]/build/generated/source/buildConfig/[package path]/
                    value = "1"      //     BuildConfig.java
                }
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles 'proguard-rules.pro'
        }
    }

    android.productFlavors {
    }



    }


dependencies {
    //compile 'com.android.support:support-v4:23.0.1'
    //compile 'com.android.support:appcompat-v7:23.0.1' //Only required when the target device API level is greater than
    compile project(':aRBaseLib')
}                                                       //the compile and target of the app being deployed to the device

我先创建并复制了所有.so库文件到应用程序主文件夹中的jnilibs,如图所示:

然后运行你的程序。 我不确定这是否是解决方案。但是错误已经消失,项目可以正常运行。如果您发现其他解决方案,请告诉我。谢谢。


谢谢!除了你的解决方案,我没有其他的解决方法。这是我第一次使用这个SDK。 - Jayson Tamayo

0
Github 获取文件对我有帮助。我按照他们简短的自述文件,将文件链接到 SDK 的保存位置,并从该目录重新打开。以上解决方法对我无效。也许是因为有一些变动,虽然我已经有了所有的 .so 库;否则可能我操作不正确。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接