我正在使用最新的Cordova 5.4.0,当我执行“Cordova”平台时,添加了android' cordova为gradle 2.1.1创建了gradle.build。我需要为android插件实现一些JNI C ++代码,但是这个版本不能很好地支持NDK,我不能在构建文件中添加NDK相关部分来引入NDK支持和设置模块名称。添加此类部分会导致构建错误(Gradle sync失败:未找到Gradle DSL方法:' ndk()')
根据本手册http://ph0b.com/new-android-studio-ndk-support/我正在尝试添加以下部分
android.ndk {
moduleName = "mymodule"
}
那么,有没有办法强制cordova生成gradle.build用于2.8或2.9等新鲜的gradle版本?只是将构建文件中的gradle版本从2.2.1更改为2.8不起作用,因为有新的'模型' root命名空间以及可能需要的其他更改。
答案 0 :(得分:1)
目前可能不可能。将cpp代码集成到cordova android项目的最佳方法是创建单独的JNI项目,使用ndk-build为所有可能的平台构建库,并以这种方式将libs集成到plugin.xml中的插件
顺便说一下,使用Android Studio无法从Cordova项目调试C ++代码。
答案 1 :(得分:0)
我也遇到了这个问题,this question有所帮助,但不得不改变一些事情。
以下是为我修复它的步骤。
在应用的根文件夹中创建gradle.properties
(如果它尚不存在)(AndroidManifest.xml
所在的位置)
添加以下行:
android.useDeprecatedNdk=true
在build.gradle文件中,在android { defaultConfig { ... } }
android {
...
defaultConfig {
...
ndk {
moduleName "native"
}
}
}
如果Android Studio提示您,您可能需要更改gradleVersion。
重建你的项目,它应该编译。