Android NDK破坏了Windows上的相对路径

时间:2015-01-25 02:09:40

标签: android android-studio android-ndk android-gradle

我正在尝试围绕C代码创建一个Android Studio包装器,并且遇到了NDK的问题。因为C代码来自第三方项目,所以我试图不移动代码位置并将项目放在存储库的子目录中,因此不得使用对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.mkApplication.mk文件,以满足NDK Gradle插件的路径追加。因此,jni文件夹中没有源文件。由于我在google上发现了几个需要多个源文件的链接,因此我在jni目录中添加了两个虚拟源文件。

除其他外,我的Android.mk文件包含以下内容:

LOCAL_SRC_FILES := \
$(LOCAL_PATH)/NDKBug1.c \
$(LOCAL_PATH)/NDKBug2.c \
$(LOCAL_PATH)/../../../../core.c \

我想看看是否有人可以直接帮我解决这个路径问题,或者建议另外一种设置方法。

1 个答案:

答案 0 :(得分:0)

LOCAL_SRC_FILES中的文件名应该是相对于本地目录的,因此您需要删除$(LOCAL_PATH)/前缀 - 然后才能正常工作。

我还没有听说过需要在本地目录中拥有源文件的bug,所以我认为你可以摆脱它们。