我想在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') { } }
但上述答案并不十分清楚。我不确定要改变哪一行,答案中的括号似乎不匹配。
我完全不知道该怎么办?任何帮助表示赞赏。
由于
答案 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
文件中。
答案 1 :(得分:2)
在尝试将“{3}}样本从”Libgdx跨平台游戏开发手册“导入Android Studio 2.1.1时,我遇到了同样的问题。就我而言,它只是简单地解决了:
/samples
项目; 更新android子项目下的build.gradle
文件,使其使用我拥有的buildToolsVersion
和compileSkdVersion
:
buildToolsVersion "23.0.3"
compileSdkVersion 23
再试一次。
所以它可能与Gradle插件的版本有关。