当cordova创建android项目时,有没有办法指定gradle版本?

时间:2015-12-07 15:25:59

标签: android android-ndk java-native-interface android-gradle cordova-plugins

我正在使用最新的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命名空间以及可能需要的其他更改。

2 个答案:

答案 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 { ... } }

下添加“ndk”块
android {
    ...
    defaultConfig {
        ...
        ndk {
            moduleName "native"
        }
    }
}

如果Android Studio提示您,您可能需要更改gradleVersion。

重建你的项目,它应该编译。