studio碰到问题:java.lang.UnsatisfiedLinkError解决办法

studio中碰到的jni问题

最近在做supervideo,解析youku视频地址,是加过密处理,须要用对应的key去解析,获取对应数据,在引用jni时,发现接二连三出问题,以前用eclipse时开发,直接把so文件放在libs/armeabi/下,就可以了,如果有有平台差异,也最多加个libs/armeabi-v7a之类的,在studio中,jni以前虽然写过相关工程,但是没有没有遇到相关问题,看来应了一句话:没有问题,可能以后才是最大的问题。那就总结下这两天这个接二连三的异常。

首先,在拼接好了url之后,接用把key和url去加密,调用jni方法。报出第一个错误,信息如下:

看了下,是说so文件没有打进apk中,于是开始在main目录下建立一个jniLibs,把so拷进去。(ps:之前是以引用的方式)
这下so应该拷贝进去了,一运行,又挂了,看下异常如下:

这个直接说是so文件没有相关方法,这有点说不过去了,又开始折腾了一会,还是这个错误,不合理啊,这不是什么技术上的难点。没理由这么。。。肯定是那里写的有问题。于是再review下代码。发现了,我在用调用native方法时,没有按规则来,想起很久以前调用aidl时,也有一个类似的情况,就是无法link里面的方法。我看了下引用native方法的包名和文件名,。。。。我自己改成我的package了,so文件声明却不是以我的命名开头的。好吧,明白了。改成对应的包名及文件名,问题解决。不是什么技术难点的时候,尤其多review下自己的代码。因为没理由让你耗费大量时间。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • java.lang.UnsatisfiedLinkError: %1 不是有效的Win32应用程序错误解决

    发现问题 最近工作中利用JNA 调用 dll 库时保错,错误如下: ///////////////// 通过 JNA 引入 DLL 库 //////////// /** * ID_FprCap.dll 负责指纹的采集, 指纹仪的初始化,设置等等 */ public interface ID_FprCap extends StdCallLibrary { ID_Fpr fpr = ID_Fpr.INSTANCE ; ID_FprCap fprCap = (ID_FprCap)Native.load

  • c++ mk文件出错Jni调用产生java.lang.UnsatisfiedLinkError错误解决方法

    错误为: Android.mk文件 c++的调用方法为: 复制代码 代码如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := TestNdk LOCAL_CPP_EXTENSION :=com_ndk_test_JniClient.cpp include $(BUILD_SHARED_LIBRARY) c中的调用方法: 复制代码 代码如下: LOCAL_SRC_FILES := com_ndk_test_Jn

  • studio碰到问题:java.lang.UnsatisfiedLinkError解决办法

    studio中碰到的jni问题 最近在做supervideo,解析youku视频地址,是加过密处理,须要用对应的key去解析,获取对应数据,在引用jni时,发现接二连三出问题,以前用eclipse时开发,直接把so文件放在libs/armeabi/下,就可以了,如果有有平台差异,也最多加个libs/armeabi-v7a之类的,在studio中,jni以前虽然写过相关工程,但是没有没有遇到相关问题,看来应了一句话:没有问题,可能以后才是最大的问题.那就总结下这两天这个接二连三的异常. 首先,在拼

  • Android Caused by: java.lang.ClassNotFoundException解决办法

    Android Caused by: java.lang.ClassNotFoundException解决办法 出现问题: 08-13 18:29:22.924: E/AndroidRuntime(1875): Caused by: Java.lang.ClassNotFoundException:XXXXX    in loader dalvik.system.PathClassLoader[/data/app/XXXX.apk] 我想大家经常因为疏忽出现ClassNotFoundExcept

  • Android 兼容性问题:java.lang.UnsupportedOperationException解决办法

    在前几天的开发中,遇到这么个非常奇葩的异常,有些手机可以运行,有些手机却直接就崩了,今天就把这异常整理下. 首先还是贴上其异常信息 E/AndroidRuntime: FATAL EXCEPTION: main android.view.InflateException: Binary XML file line #13: Error inflating class <unknown> at android.view.LayoutInflater.createView(LayoutInflat

  • maven引入本地jar包运行报错java.lang.NoClassDefFoundError解决

    目录 正文 maven引入本地jar的示例 配置maven将本地jar打入package中 maven打包知识分享 scope详解 正文 下文笔者讲述maven引入本地jar包时,运行报错"java.lang.NoClassDefFoundError"的处理方法分享,如下所示 今天在编写maven项目    导入本地jar包    部署到服务器上找不到包  报错信息如:java.lang.NoClassDefFoundError那么如何解决呢?   这种问题是由于,本地jar包在打包的

  • Java编译错误信息提示java.lang.ExceptionInInitializer解决

    错误提示 错误提示信息为: Error:java: java.lang.ExceptionInInitializerError com.sun.tools.javac.code.TypeTags 如果使用 Maven 错误信息是一样的. [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] -----------------------

  • Android异常 java.lang.IllegalStateException解决方法

    Android异常详情介绍 这种异常我遇到以下两种情况: 1. java.lang.IllegalStateException: No wrapped connection. 2.java.lang.IllegalStateException: Adapter is detached. 原因: 1.单线程一次执行一个请求可以正常执行,如果使用多线程,同时执行多个请求时就会出现连接超时. 2.HttpConnection没有连接池的概念,多少次请求就会建立多少个IO,在访问量巨大的情况下服务器的I

  • Tomcat启动时报错:java.lang.UnsatisfiedLinkError的解决

    问题 之前tomcat启动老是报错,虽然不影响项目的启动运行,但是有强迫症的程序员会心里不爽: 如下: 问题分析 由于本机安装的jdk版本与tomcat中使用的jdk版本不一致导致的. 解决方法 后面我把原先tomcat启动环境用的jdk1.7改为了本机安装的jdk1.8就不在报错. 具体过程: 在myeclipse中点击window→preference→在搜索框中输入Tomcat→选择安装的tomcat版本,我这里是选择Tomcat 7.x→点击JDK→在Tomcat 7.x JDK nam

  • Android Studio提示inotify大小不足的解决办法

    前言 Inotify会对工程内的所有文件夹设置"watch handle".不幸的是,Linux默认的watch handle的限值不能满足实际工程大小的需要,超过限值将强制IntelliJ重新扫描项目目录的递归树(这将非常耗时). 为了避免这种问题,我们推荐修改提高watches的限值(一般521k就可以了),以下是具体的解决步骤. 问题描述: 使用Android Studio 导入AOSP源码并且indexing完,ide右上角可能抛出警告"Kernel inotify

随机推荐