问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何为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启动时设置的值。如果有人能找到一个办法,请随时提出。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
3dmax灯光教程 如何使用VR IES光域网?VR IES的参数怎样设置? 谷歌浏览器怎么设置成中文_谷歌浏览器设置中文语言 【谷歌浏览器技巧】谷歌浏览器如何更改语言? 史上最全ETF全解 证券ETF是深市的吗 怎样把莲藕肉丸子做的好吃? 高三语文小说赏析小说形象分析与答题技巧 人物形象题答题技巧 借助什么分析小说的人物形象 脖子旁边疼是什么原因 同学请我去吃饭的时候我如果直接不去的话会怎样呢? 如何提高android.mk的编译速度 感谢同学请客的话 同学请我吃饭的时候我如果直接不去的话会怎样呢? 过生日时,同学之间互相请客你认为这样好吗?请说说你的理由 同学请客吃饭感谢的语言 同学请客吃饭指明只能我一个人去,心里不愉快就借故没去,你怎样看? 怎么让机制饺子皮不变酸不粘皮 饺子馅变酸了怎么办?? 饺子馅有点酸怎么办?‘ 饺子皮过夜就酸了,添加什么好 怎么给苹果手机设置自己喜欢的铃声? 苹果手机怎么设置自己喜欢的歌当铃声? iphone怎么设置自己的来电铃声?? 苹果手机怎么换自己喜欢的铃声? 苹果平板怎么设置自己喜欢的铃声 炒糖栗子怎么炒 糖炒栗子具体怎么做 怎么做糖炒栗子? 糖炒板栗怎么炒啊 同学请客我该怎么办? android jni cmake和 mk的不同 同学请客吃饭提议应该说些什么 android studio nd开发到底要不要自己配置.mk文件 同学请客吃饭不去应该怎么回答? build gradle中ndk怎么创建多个modulename 同学请我吃饭的时候我如果每次都不去的话会怎样呢? android 怎么把多个so文件编译成jar 同学请客吃饭的时候,我如果每次大家都去了就我不去的话会怎样呢? 为什么android studio 打包的程序进程不识别 同学请客吃饭就我没去,我要怎么办 如何更新android studio中的ndk 如何处理同学间互相请客吃饭的问题? android studio中怎么打包.so库文件 同学请我帮陪客人吃饭我应怎么做? android bionic 在ndk中吗 帮了一两次小忙,同学老是要请客吃饭怎么办? 应不应该拒绝 android jni abifilters为什么没产生文件 android studio 怎么生成so 现在用androidstudio进行NDK开发成熟吗