Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android &引用;“未找到本机方法”;在安卓工作室_Android_Android Studio_Unsatisfiedlinkerror - Fatal编程技术网

Android &引用;“未找到本机方法”;在安卓工作室

Android &引用;“未找到本机方法”;在安卓工作室,android,android-studio,unsatisfiedlinkerror,Android,Android Studio,Unsatisfiedlinkerror,我已经浏览了关于这个主题的所有其他帖子,但没有一篇对我有帮助 我使用的是第三方SDK(oovoo),它包含一个.jar文件和.so文件(armeabi-v7a) 正如在allotofplaces中所述,我将.jar文件放在libs文件夹中,将armeabi-v7a文件夹(其中包含.so文件)放在src/main中名为jniLibs的文件夹中 构建之后,当我解压.apk时,我看到一个名为lib的文件夹,其中有一个名为armeabi-v7a的文件夹,其中包含.so文件 但我仍然有这样一个例外: j

我已经浏览了关于这个主题的所有其他帖子,但没有一篇对我有帮助

我使用的是第三方SDK(oovoo),它包含一个.jar文件和.so文件(armeabi-v7a)

正如在allotofplaces中所述,我将.jar文件放在libs文件夹中,将armeabi-v7a文件夹(其中包含.so文件)放在src/main中名为jniLibs的文件夹中

构建之后,当我解压.apk时,我看到一个名为lib的文件夹,其中有一个名为armeabi-v7a的文件夹,其中包含.so文件

但我仍然有这样一个例外:

 java.lang.UnsatisfiedLinkError: Native method not found: com.oovoo.core.ClientCore.VideoChannelPtr.nCreate:(Ljava/lang/String;)J
  • 为什么它不能实现
  • 如果它位于中的lib文件夹中 apk是否意味着它将在运行时为它提供支持
谢谢你

android studio版本0.8.6 渐变版本1.12
oovoo 1.2.4版要具体回答您的问题:

它无法到达实现,因为在运行时,当java环境尝试加载名为
java\u com\u oovoo\u core\u ClientCore\u VideoChannelPtr\n的本机方法时,它没有发现加载了原型
int(string)
。这可能是由以下原因造成的:

  • 调用该方法时,
    .so
    库没有加载,因此java不知道它(所以这是您的错误,您调用函数的顺序错误)
  • .so
    库没有导出这样的函数,这意味着您没有机会修复此问题
  • 手机在运行时加载的
    .so
    库除了
    armv7s
    之外,还需要不同的体系结构。确保您的设备是
    armv7s
  • Android系统在其中查找本机libs的文件夹与您预期的不同。我知道这是一个老问题,所以在您的apk中,在您的lib文件夹中创建“armeabi-v7a”和“armeabi”,并在这两个文件夹中复制该文件

关于您的第二个问题,是的,如果您在apk中有lib,您将在运行时拥有它。

谢谢您的回答!我尝试了你所说的一切,添加了一个名为armeabi的文件夹,并检查了我的设备架构。关于你的第二个想法,我不认为这是因为他们有一个在eclipse上运行的示例。关于我认为最重要的一件事,我尝试用System.loadLibrary加载库(在同一个类中,-o应该把它放在哪里?),它说“尝试加载库…”,然后是“添加共享库…”,当它到达有问题的代码时,它崩溃了,“致命信号11(SIGSEGV)在0x00000000(代码=1)”。请问您有什么想法吗?System.loadLibrary是您需要的调用,请确保去掉“lib”前缀和“.so”sufix.Sisgsegv意味着在本机代码中它访问了一个“null指针”,因此这是库本身的问题,或者它的使用方式。根据您的评论,我认为您已经通过了链接错误(这是向前迈出的一步)。您可以从库中访问任何其他本机函数而不导致代码崩溃吗?关于eclipse/其他ide,它与您遇到的问题无关。它现在没有崩溃!事实证明,我不需要从onCreate方法调用库。不知道为什么。。。谢谢你!