超级动力本机功能在运行时不可用

时间:2016-04-25 06:12:23

标签: android linker

我已经在Android Studio 2.0中得到了交叉示例

我获得了成功的构建并部署到Android设备但是它运行的那一刻失败了,因为java主要活动无法找到示例cpp文件中构建的本机方法。 cpp正在建设中。

                                                                          java.lang.UnsatisfiedLinkError: No implementation found for void com.clayteq.audiosupertest.MainActivity.SuperpoweredExample(java.lang.String, long[]) (tried Java_com_clayteq_audiosupertest_MainActivity_SuperpoweredExample and Java_com_clayteq_audiosupertest_MainActivity_SuperpoweredExample__Ljava_lang_String_2_3J)
                                                                            at com.clayteq.audiosupertest.MainActivity.SuperpoweredExample(Native Method)
                                                                            at com.clayteq.audiosupertest.MainActivity.onCreate(MainActivity.java:57)``

我在某个地方遗漏了什么!似乎没有包含来自cpp操作的对象。

1 个答案:

答案 0 :(得分:1)

如果您不熟悉原生开发,github页面上的超级安装示例会有点短暂!

.cpp文件包含使用限定的java包名称导出其方法的部分。

由于我在自己的软件包下构建了我的项目,因此从cpp链接导出的软件包显然是不匹配的。

扫描.cpp文件中的JNIEXPORT实例,并使导出的类与您的java包名称匹配!

(为什么经过一天的学习曲线后,你发布到Stackoverflow,然后在几分钟之后找到答案?)