【发布时间】:2017-08-08 01:18:50
【问题描述】:
我有三个使用 Android NDK 的项目。前两个构建静态库(一个包含另一个)。我正在尝试将它们作为第三个构建的一部分包含在内,但会根据我在 android studio 2.3 中设置我的应用程序的方式出现各种错误。
我已经阅读了关于此的其他问题,但它们都提到将库构建为同一个 makefile 的一部分。我需要能够将两者构建为不同品牌的一部分,并从相对路径中引用内部库。
这是我可以创建的最基本的示例。
https://github.com/ginger-mcmurray/android.mk-inner-library-sample
构建内部库工作正常。构建包装库也可以,我可以通过在创建的 .a 文件上运行 nm 来判断。
PLNA007982-MBP:arm64-v8a ginger.mcmurray$ nm libInnerLibrary.a
inner-library.o:
0000000000000000 n $d.1
0000000000000000 n $d.2
0000000000000000 n $d.3
0000000000000000 n $d.4
0000000000000000 n $d.5
0000000000000000 n $d.6
0000000000000000 r $d.7
0000000000000000 n $d.8
0000000000000000 t $x.0
0000000000000000 T innerLibraryMethod
PLNA007982-MBP:arm64-v8a ginger.mcmurray$ nm libWrapperLibrary.a
wrapper-library.o:
0000000000000000 n $d.1
0000000000000000 n $d.2
0000000000000000 n $d.3
0000000000000000 n $d.4
0000000000000000 n $d.5
0000000000000000 n $d.6
0000000000000000 r $d.7
0000000000000000 n $d.8
0000000000000000 t $x.0
U innerLibraryMethod
0000000000000000 T wrapperLibraryMethod
我已经遵循了我可以在这里找到的所有答案中的建议,但没有一个有效。 github 上的当前版本没有构建。错误是
/Users/ginger.mcmurray/Jay-s-POC/ndk-test/hello-jni/app/src/main/cpp/src/hello-jni.c
Error:(34) undefined reference to 'wrapperLibraryMethod'
wrapperLibraryMethod 在 libWrapperLibrary.a 中定义,但未被构建找到。
【问题讨论】:
-
嗨,Ginger,您收到了什么样的错误消息?这些错误消息可以帮助我们调试问题。谢谢。
-
@MartinK.Brown:抱歉,不知怎的,它从原始帖子中被截断了。它现在在那里。 (当然,“不知何故”我的意思是“用户错误”。):)
标签: android-studio android-ndk android-gradle-plugin