我正在将Android库从Eclipse迁移到Android Studio。在Eclipse中,我可以通过“项目”>“属性”>“资源”>“链接的资源”>“路径变量”来设置NDK_MODULE_PATH。但是如何分别使用gradle在Android Studio中实现相同的目的呢?
我的库将一直构建,直到尝试在NDK_MODULE_PATH下查找模块的头。
这是错误消息:
执行任务:[:libAndroid:compileDebugSources,:physicaloidLibrary:compileDebugSources]
按需配置是一个孵化功能。
:libAndroid:preBuild截止日期
:libAndroid:preDebugBuild UP-TO-DATE
:libAndroid:checkDebugManifest
:libAndroid:preDebugAndroidTestBuild截止日期
:libAndroid:preReleaseBuild截至最新
:physicaloidLibrary:compileLint
:physicaloidLibrary:copyReleaseLint截止日期
:physicaloidLibrary:mergeReleaseProguardFiles截止日期
:physicaloidLibrary:preBuild UP-TO-DATE
:physicaloidLibrary:preReleaseBuild UP-TO-DATE
:physicaloidLibrary:checkReleaseManifest
:physicaloidLibrary:prepareReleaseDependencies
:physicaloidLibrary:compileReleaseAidl UP-TO-DATE
:physicaloidLibrary:compileReleaseRenderscript截止日期
:physicaloidLibrary:generateReleaseBuildConfig截止日期
:physicaloidLibrary:generateReleaseAssets UP-TO-DATE
:physicaloidLibrary:mergeReleaseAssets UP-TO-DATE
:physicaloidLibrary:generateReleaseResValues UP-TO-DATE
:physicaloidLibrary:generateReleaseResources UP-TO-DATE
:physicaloidLibrary:packageReleaseResources UP-TO-DATE
:physicaloidLibrary:processReleaseManifest UP-TO-DATE
:physicaloidLibrary:processReleaseResources UP-TO-DATE
:physicaloidLibrary:generateReleaseSources UP-TO-DATE
:physicaloidLibrary:compileReleaseJava UP-TO-DATE
:physicaloidLibrary:processReleaseJavaRes截止日期
:physicaloidLibrary:packageReleaseJar UP-TO-DATE
:physicaloidLibrary:compileReleaseNdk截止日期
:physicaloidLibrary:packageReleaseJniLibs截止日期
:physicaloidLibrary:packageReleaseLocalJar UP-TO-DATE
:physicaloidLibrary:packageReleaseRenderscript截止日期
:physicaloidLibrary:bundleRelease UP-TO-DATE
:libAndroid:prepareLibAndroidGradlePhysicaloidLibraryUnspecifiedLibrary UP-TO-DATE
:libAndroid:prepareDebugDependencies
:libAndroid:compileDebugAidl更新日期
:libAndroid:compileDebugRenderscript截止日期
:libAndroid:generateDebugBuildConfig更新日期
:libAndroid:generateDebugAssets更新日期
:libAndroid:mergeDebugAssets更新
:libAndroid:generateDebugResValues截止日期
:libAndroid:generateDebugResources最新
:libAndroid:mergeDebugResources最新
:libAndroid:processDebugManifest截止日期
:libAndroid:processDebugResources最新
:libAndroid:generateDebugSources最新
:libAndroid:compileDebugJava更新日期
:libAndroid:compileDebugNdk
AGPBI:{“种类”:“简单”,“文本”:“/home/rhodo/dev/android/studio/LibAndroidGradle/libAndroid/src/main/jni/imageprocessing/dmtxutil.c:30:18:致命错误: dmtx.h:没有这样的文件或目录“,” position“:{},”原始“:”/home/rhodo/dev/android/studio/LibAndroidGradle/libAndroid/src/main/jni/imageprocessing/dmtxutil.c: 30:18:致命错误:dmtx.h:没有这样的文件或目录“}
AGPBI:{“种类”:“简单”,“文本”:“#include\u003cdmtx.h\u003e”,“位置”:{},“原始”:“#include\u003cdmtx.h\u003e”}
AGPBI:{“种类”:“简单”,“文本”:“^”,“位置”:{},“原始”:“^”}
AGPBI:{“种类”:“简单”,“文本”:“编译终止。”,“位置”:{},“原始”:“编译终止。”}
AGPBI:{“kind”:“SIMPLE”,“text”:“make:*** [/home/rhodo/dev/android/studio/LibAndroidGradle/libAndroid/build/intermediates/ndk/debug/obj/local/arm64 -v8a/objs/Rhodo//home/rhodo/dev/android/studio/LibAndroidGradle/libAndroid/src/main/jni/imageprocessing/dmtxutil.o]错误1“,”位置“:{},”原始“:”制作:*** [/home/rhodo/dev/android/studio/LibAndroidGradle/libAndroid/build/intermediates/ndk/debug/obj/local/arm64-v8a/objs/Rhodo//home/rhodo/dev/android/studio/LibAndroidGradle/libAndroid/src/main/jni/imageprocessing/dmtxutil.o]错误1“}
失败的
失败:生成失败,发生异常。
* 什么地方出了错:
任务':libAndroid:compileDebugNdk'的执行失败。
> com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'command'/opt/android-ndk/ndk-build'完成,退出值非零2
* 尝试:
使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行,以获取更多日志输出。
建立失败
总时间:2.763秒
有什么想法吗?
最佳答案
在Android Studio项目的根目录中,有一个名为“local.properties”的文件。添加一个名为“ndk.dir”的属性,并将其值设置为指向ndk的位置。类似于以下内容:
ndk.dir=/Users/username/sdk
我可能不理解您的问题。如果您已经设置了ndk的位置,并且只想确保已构建模块,则将该模块添加到“settings.gradle”文件中。
include ":<your module name>"
然后确保将C代码放在模块的“src/main/jni”中。 Gradle会根据文件夹名称自动找到它。不再需要设置NDK_MODULE_PATH。
关于android - 如何在Android Studio和/或Gradle中设置NDK_MODULE_PATH?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28831997/