无法在任务'上设置只读属性'jniFolders'的值:android:packageDebug'

时间:2016-03-06 04:48:43

标签: android android-studio android-gradle

我想在Android工作室中打开并投影我暂时没有工作,但是当Android Studio尝试加载项目时,它会失败并显示以下错误消息:

Error:(21, 0) Cannot set the value of read-only property 'jniFolders' on task ':android:packageDebug'.

我点击build.gradle的链接,我猜这些行是问题...

// needed to add JNI shared libraries to APK when compiling on CLI
tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
    pkgTask.jniFolders = new HashSet<File>()
    pkgTask.jniFolders.add(new File(projectDir, 'libs'))
}

我在这里看到了答案:Google AppInvites break build说...

  

通过添加此代码来修复:

android {
  sourcesets {
    main {
      jniLibs.srcDir new File(buildDir, 'lib')
    {
  }
}

但上述答案并不十分清楚。我不确定要改变哪一行,答案中的括号似乎不匹配。

我完全不知道该怎么办?任何帮助表示赞赏。

由于

2 个答案:

答案 0 :(得分:39)

好的,我必须将build.gradle文件的开头更改为....

android {
    buildToolsVersion project.androidToolsVersion
    compileSdkVersion project.androidSDKVersion.toInteger()
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
            jniLibs.srcDir 'libs'
        }

        instrumentTest.setRoot('tests')
    }
}

/*RBC
// needed to add JNI shared libraries to APK when compiling on CLI
tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
    pkgTask.jniFolders = new HashSet<File>()
    pkgTask.jniFolders.add(new File(projectDir, 'libs'))
}
RBC*/

我添加了一行:

jniLibs.srcDir 'libs'

我注释掉了

// needed to add JNI shared libraries to APK when compiling on CLI
tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
    pkgTask.jniFolders = new HashSet<File>()
    pkgTask.jniFolders.add(new File(projectDir, 'libs'))
}

C:\Users\plankton\Desktop\ThePlaneThatCouldntFly\flappytrip\android\build.gradle文件中。

我在阅读此https://github.com/libgdx/libgdx/issues/3027

后想出了这个解决方案

答案 1 :(得分:2)

在尝试将“{3}}样本从”Libgdx跨平台游戏开发手册“导入Android Studio 2.1.1时,我遇到了同样的问题。就我而言,它只是简单地解决了:

  • 导入/samples项目;
  • 在提示时不升级Gradle插件;
  • 更新android子项目下的build.gradle文件,使其使用我拥有的buildToolsVersioncompileSkdVersion

    buildToolsVersion "23.0.3"
    compileSdkVersion 23
    
  • 再试一次。

所以它可能与Gradle插件的版本有关。