【发布时间】:2015-01-25 02:09:39
【问题描述】:
我正在尝试围绕 C 代码创建 Android Studio 包装器,但遇到了 NDK 的问题。因为 C 代码来自第 3 方项目,所以我试图不移动代码位置并将项目放在存储库的子目录中,因此不必使用内置调用 NDK 及其自动生成的 make 文件。 NDK 调用正常,但出现以下错误:
make.exe: *** No rule to make target `C:/some_relative_path/jni/../../../../core.c', needed by `C:/some_relative_path/obj/local/armeabi/objs/my_module/C_/some_relative_path/jni/__/__/__/__/core.o'. Stop.
如您所见,对象路径已被破坏,: 和 .. 已变成下划线。
我必须在我的项目中添加一个 jni 文件夹并将 Android.mk 和 Application.mk 文件放入其中以满足 NDK Gradle 插件的路径附加。因此,jni 文件夹中没有源文件。由于我在 google 上找到了几个关于需要多个源文件的链接,因此我在 jni 目录中添加了两个虚拟源文件。
除其他外,我的Android.mk 文件包含以下内容:
LOCAL_SRC_FILES := \
$(LOCAL_PATH)/NDKBug1.c \
$(LOCAL_PATH)/NDKBug2.c \
$(LOCAL_PATH)/../../../../core.c \
我正在寻找是否有人可以直接帮助我解决此路径问题,或者建议另一种设置方式。
【问题讨论】:
-
您是否尝试过浏览 NDK 中的示例?如果您这样做并观察 android.mk 中的表达式并查看使用的文件夹,它可能会更好地了解 NDK 的内部工作,因此您可以构建您的项目。 NDK 让你在 windows 上进入 cygwin。
标签: android android-studio android-ndk android-gradle-plugin