如何为Android NDK的gradle构建文件中指定NDK
发布网友
发布时间:2022-04-22 21:48
我来回答
共1个回答
热心网友
时间:2023-10-05 06:57
我一直在尝试过解决这个问题。但在通过编写自定义任务,使Android工作室在Eclipse中使用Application.mk和Android.mk就像结束了。
我的build.gradle看起来像这样
应用插件:'com.android.application“安卓{ buildTypes {
发布 {
runProguard假
proguardFiles getDefaultProguardFile('proguard的-android.txt'),'proguard-rules.pro“
}
} compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
} compileSdkVersion 20
buildToolsVersion“20.0.0” defaultConfig {
15的minSdkVersion
targetSdkVersion 20
版本code 1
} packagingOptions {
排除“META-INF /相关内容”
排除“META-INF / LICENSE”
排除“META-INF /注意事项”
} sourceSets.main {
jniLibs.srcDir'的src / main /库“
jni.srcDirs = [] //禁用自动NDK的构建通话
}
}任务buildNative(类型:执行){
高清ndkBuild = NULL;
高清ndkBuildingDir =新的文件(“钢骨混凝土/主/ JNI”);
高清hasNdk = FALSE;
如果(System.getenv(“NDK_BUILD_CMD”)!= NULL){
hasNdk = TRUE;
ndkBuild =新的文件(System.getenv(“NDK_BUILD_CMD”))
} 命令行ndkBuild,“--directory”,ndkBuildingDir doFirst {
如果(!hasNdk){
logger.error('##################')
logger.error(“NDK构建失败!”)
logger.error('原因:NDK_BUILD_CMD未设置。')
logger.error('##################')
}
断言hasNdk:“NDK_BUILD_CMD未设置。”
}
}
tasks.withType(JavaCompile){compileTask - > compileTask.dependsOn buildNative}任务cleanNative(类型:执行){
高清ndkBuild = NULL;
高清ndkBuildingDir =新的文件(“钢骨混凝土/主/ JNI”);
高清hasNdk = FALSE; 如果(System.getenv(“NDK_BUILD_CMD”)!= NULL){
hasNdk = TRUE;
ndkBuild =新的文件(System.getenv(“NDK_BUILD_CMD”))
} 命令行ndkBuild,“--directory”,ndkBuildingDir,“干净” doFirst {
如果(!hasNdk){
logger.error('##################')
logger.error(“NDK构建失败!”)
logger.error('原因:NDK_BUILD_CMD未设置。')
logger.error('##################')
}
断言hasNdk:“NDK_BUILD_CMD未设置。”
}
}
clean.dependsOn“cleanNative”
对于这个工作,你需要设置一个环境变量NDK_BUILD_CMD要设置的确切NDK建造可执行文件。
在Windows上,你可以设置环境变量NDK_BUILD_CMD点到你的NDK-build.exe
在Mac上,你在你的.bash_profile设置路径变量不在GUI应用程序访问(因此Android的Studio将无法读取它们)。
所以,编辑你的.bash_profile是像
GRADLE_HOME = {} path_to_gradle
ANDROID_SDK_ROOT = {} path_to_sdk_dir
ANDROID_HOME = $ ANDROID_SDK_ROOT /平台的工具
ANDROID_NDK_HOME = {} path_to_ndk
NDK_BUILD_CMD = $ ANDROID_NDK_HOME / NDK的构建出口PATH=$GRADLE_HOME/bin:$ANDROID_HOME:$ANDROID_SDK_ROOT/tools:$ANDROID_NDK_HOME:/opt/local/bin:/opt/local/sbin:$PATHlaunchctl SETENV GRADLE_HOME $ GRADLE_HOME
launchctl SETENV ANDROID_HOME $ ANDROID_HOME
launchctl SETENV ANDROID_NDK_HOME $ ANDROID_NDK_HOME
launchctl SETENV NDK_BUILD_CMD $ NDK_BUILD_CMD
该launchctl线将使您的环境变量的Android Studio中可见。
PS:本.bash_profile中运行每次打开终端的时间。因此,对于这个正确与Android工作室工作,你需要启动一次终端,然后运行Android的工作室。否则,构建就会失败说NDK_BUILD_CMD未设置。我还没有发现任何方式的Mac启动时设置的值。如果有人能找到一个办法,请随时提出。