【发布时间】:2016-12-01 11:21:26
【问题描述】:
我有一个通过Android NDK 使用 C/C++ 的 Android 库项目。
该项目是半年前开始的,所以我们选择使用Experimental Plugin,因为对 NDK 的支持更好。
我现在正在使用gradle-experimental:0.8.2。我有一个com.android.model.native 模块,我想将它迁移到gradle:2.2.0。我在Gradle Android Plugin DSL 看到的唯一选项是:
- AppExtension:
com.android.application项目的 android 扩展。 - LibraryExtension:
com.android.library项目的 android 扩展。 - TestExtension:
com.android.test项目的 android 扩展。
那么问题是如何用稳定的 gradle 插件在 gradle 中制作一个纯原生模块?
这是我当前的原生模块:
apply plugin: 'com.android.model.native'
apply from: "../config.gradle"
def config = ext.configuration
model {
android {
compileSdkVersion = config.compileSdkVersion
buildToolsVersion = config.buildToolsVersion
defaultConfig {
minSdkVersion.apiLevel = config.minimumSdkVersion
targetSdkVersion.apiLevel = config.targetSdkVersion
versionCode = 1
versionName = '1.0'
}
ndk {
moduleName = 'apicore'
platformVersion = config.minimumSdkVersion
cppFlags.add("-std=c++11")
cppFlags.add("-pthread")
cppFlags.add("-fexceptions")
cppFlags.add("-frtti")
stl = "gnustl_static"
abiFilters.addAll(config.targetPlatforms)
ldLibs.addAll(['android', 'log'])
}
sources {
main {
jni {
source {
//include "someFile.txt"
// This is ignored.
exclude "main.cpp"
exclude "misc/APITest.cpp"
exclude "misc/APITest.h"
}
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles.add(file('proguard-android.txt'))
}
}
}
}
【问题讨论】:
-
我不明白你真正想要什么。将您的应用程序
classpath 'com.android.tools.build:gradle:2.2.2'的build.gradle放入并告诉我们当您的应用程序完成项目构建时会发生什么。 -
稳定的gradle没有
com.android.model.native插件 -
这是您的应用程序
build.gradle,项目还有另一个build.gradle。在那里你可以找到你的 gradle 版本。 -
@RodrigoPaixão 我可以更改我的 gradle 版本,这不是问题。稳定的 gradle 没有本机模块。你真的不明白我想要什么。我正在使用这个:tools.android.com/tech-docs/new-build-system/…
-
我有同样的问题,遗憾的是迁移指南没有提及任何内容。在 gradle 2.2 和 ndk 的 googlesamples 中,他们避免使用本机库模块,而是只有一个构建所有库的脚本,这似乎是目前唯一的选择。参考 gradle-experimental sample with com.android.model.native github.com/googlesamples/android-ndk/tree/gradle-experimental/…, ndk-build sample without github.com/googlesamples/android-ndk/tree/master-ndkbuild/…
标签: android android-studio gradle cmake gradle-experimental