是否有可能在Android Studio中建立与作为。所以输出
问题描述:
我有我目前正在建设使用Android.mk文件和NDK建造几个C++项目本机模块。由于这不是很好的调试我想包括这个c + +项目作为模块在我的android studio项目。这个android studio项目目前是一个android java库,它使用了ndk-build中的.so。是否有可能在Android Studio中建立与作为。所以输出
我调试通过创建一个新的Android库模块和进口的C++代码,设置标题和库路径的工作。该模块是这样的:
apply plugin: 'com.android.model.library'
model {
android {
compileSdkVersion = 23
buildToolsVersion = '23.0.2'
defaultConfig {
minSdkVersion.apiLevel = 4
targetSdkVersion.apiLevel = 23
}
}
android.ndk {
moduleName = 'module_name'
toolchain = 'gcc'
stl "gnustl_static"
ldFlags.addAll(["-L/LIB_PATH"])
ldLibs.addAll(["android", "log", "whatever_lib"])
cppFlags.addAll(['-std=c++11',
"-I" + "/SEARCH_PATHS"])
}
android.productFlavors {
create("arm7") {
ndk.abiFilters.add("armeabi-v7a")
}
}
android.sources {
main {
java.source.srcDirs += []
res.source.srcDirs += []
assets.source.srcDirs += []
jniLibs.source.srcDirs += []
jni.source{
srcDirs += [
NATIVE_PROJECT_PATH + "include/",
NATIVE_PROJECT_PATH + "src/",
]
}
}
}
}
这工作得很好,但我得到的模块/生成/输出/ AAR/libname_release.aar/lib中/ ABI/lib.so这是不是一个好点的。所以,因为我直接需要.so而不需要解压缩。
是否有任何可能的方式让该模块只在给定路径上创建.so并让另一个模块构建并使用它?
答
当然我找来找去找到一个办法不久。 http://tools.android.com/tech-docs/new-build-system/gradle-experimental#TOC-NDK-Dependencies
而不是“应用插件:‘com.android.model.library’”您可以使用“应用插件:‘com.android.model.native’”,并在模块中有你可以使用相关性:
sources {
main {
jni {
dependencies {
project ":dependency_module"
}
}
}
}