Couldn't load libPassword from loader:NDK开发中C文件编译成cpu对应的so类库时,找不到类库报错的原因之一
LogCat输出:
03-03 12:42:32.665: E/AndroidRuntime(32432): FATAL EXCEPTION: main
03-03 12:42:32.665: E/AndroidRuntime(32432): Process: com.toro.passwordencode, PID: 32432
03-03 12:42:32.665: E/AndroidRuntime(32432): java.lang.UnsatisfiedLinkError: Couldn't load libPassword from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.toro.passwordencode-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.toro.passwordencode-1, /vendor/lib, /system/lib]]]: findLibrary returned null
03-03 12:42:32.665: E/AndroidRuntime(32432): at java.lang.Runtime.loadLibrary(Runtime.java:358)
03-03 12:42:32.665: E/AndroidRuntime(32432): at java.lang.System.loadLibrary(System.java:526)
03-03 12:42:32.665: E/AndroidRuntime(32432): at com.toro.passwordencode.MainActivity.<clinit>(MainActivity.java:15)
03-03 12:42:32.665: E/AndroidRuntime(32432): at java.lang.Class.newInstanceImpl(Native Method)
03-03 12:42:32.665: E/AndroidRuntime(32432): at java.lang.Class.newInstance(Class.java:1208)
03-03 12:42:32.665: E/AndroidRuntime(32432): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
03-03 12:42:32.665: E/AndroidRuntime(32432): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2116)
03-03 12:42:32.665: E/AndroidRuntime(32432): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2258)
03-03 12:42:32.665: E/AndroidRuntime(32432): at android.app.ActivityThread.access$800(ActivityThread.java:147)
03-03 12:42:32.665: E/AndroidRuntime(32432): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1211)
03-03 12:42:32.665: E/AndroidRuntime(32432): at android.os.Handler.dispatchMessage(Handler.java:102)
03-03 12:42:32.665: E/AndroidRuntime(32432): at android.os.Looper.loop(Looper.java:136)
03-03 12:42:32.665: E/AndroidRuntime(32432): at android.app.ActivityThread.main(ActivityThread.java:5135)
03-03 12:42:32.665: E/AndroidRuntime(32432): at java.lang.reflect.Method.invokeNative(Native Method)
03-03 12:42:32.665: E/AndroidRuntime(32432): at java.lang.reflect.Method.invoke(Method.java:515)
03-03 12:42:32.665: E/AndroidRuntime(32432): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
03-03 12:42:32.665: E/AndroidRuntime(32432): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
03-03 12:42:32.665: E/AndroidRuntime(32432): at dalvik.system.NativeStart.main(Native Method)
Android.mk代码如下:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) #LOCAL_MODULE := libEncodePassword #导致错误的行,此处so类库名前不能以“lib”开头。应该是编译时生成的so类库文件都以lib为前缀有冲突。此处打个问号,求解
LOCAL_MODULE := EncodePassword #正确行#
LOCAL_SRC_FILES := Password.c include $(BUILD_SHARED_LIBRARY)
MainActivity.java代码如下:
//加载cpu架构对应的so类库
static{
//System.loadLibrary("libEncodePassword"); //导致错误的行,此处so类库名前不能以“lib”开头
System.loadLibrary("EncodePassword"); //正确
}
Couldn't load libPassword from loader:NDK开发中C文件编译成cpu对应的so类库时,找不到类库报错的原因之一的更多相关文章
- NDK 开发中,各种指令集的坑,arm64
最近在NDK开发中遇到了一个奇怪的问题,希望记录下,可以帮到大家: 我编译了一些 .so 动态库,只编译了armeabi-v7a.armeabi 指令集,其它指令集编译不了 ...
- NDK下 将Platinum SDK 编译成so库 (android - upnp)
Platinum UPnP SDK 是一个跨平台的C++库,利用该库,可以很容易就构建出DLNA/UPnP控制点(DLNA/UPnP Control Point)和DLNA/UPnP设备(DLNA/U ...
- AndroidNDK开发中使用CMake编译JNI
虽然一直在做NDK的开发工作,但是由于项目比较久远,都是使用Makefile进行底层编译,对于目前AndroidStudio官方提供的CMake编译方式并不是很了解,现在学习下这种已经不算新潮的新方式 ...
- JNI 开发基础篇:Android开发中os文件的探索
正题: android开发中,时长会遇到os文件的使用,那么os文件到底是什么?在这篇文章中会进行说明. .os文件在android中意味着C语言书写的方法,经android提供的ndk进行编译,从而 ...
- Android 开发 DNK开发将.c文件打包成os
前言 不废话太多,Java与C之间联系的JNI的概念,这个要了解可以参考下面这个博客: https://www.jianshu.com/p/87ce6f565d37 此博客只说明如何将.C文件通过ND ...
- android开发中R文件丢失
R文件在android开发中,占据着中会在重要的地位,里面的内容有系统自动生成,不可随意修改,然而在开发过程中,总是不可知的丢失,这里总结一下修补方法 #.在Eclipse里可以 ...
- eclipse开发Java web工程时,jsp第一行报错,如何解决?
与myeclipse不同,eclipse开发java web项目时是要下载第三方软件(服务器)的,正是这个原因,很多初学者用eclipse学习java web的时候,总是会遇到一些小问题.其中常见的一 ...
- Android NDK 开发中 adb logcat 命令的使用
一.LogCat 存储在一个叫做 circular memory buffers 的缓冲中. 平时常用的都是通过eclipse 自带的 logcat 插件查看 logcat ,其实也可以通过命令来导出 ...
- android -------- 解决NDK开发中的 Method 'NewStringUTF' could not be resolved
创建NDK项目时, .cpp文件中出现错误, Method 'NewStringUTF' could not be resolved 如图: 网上看了很多解决方式 项目右键->属性->c/ ...
随机推荐
- AndroidUI 引导页面的使用
一个应用程序都少不了欢迎页面和引导页面,本文主要讲如何制作一个引页面: 首页所有的目录结构: 新建Welcome引导页面和Activity: <RelativeLayout xmlns:andr ...
- C_const
const * const在*左边,指向一个常量. * const const在*右边,指针是常量. 1 const int *p;//指向常量的指针,与下面一样 2 int const *p1;// ...
- 使用扩展名获取mimetype
在Android中很多时候我们需要计算出文件的mimetype,而我们通常的思路就是通过扩展名来获取对应的mimetype,而如果自行处理,将维护一个比较大的映射表,而实际上大可不必,Android提 ...
- ShareSDK的简化压缩和使用样例
share sdk 太大了 于是自己 開始简化, 删除了 ipad 的图片和 framework , 压缩了 sharesdk 中的 图片,用几k的图片 替换了几个 200多k 的图片 仅仅保留 ...
- cocoa pods出现的错误
ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod 解决办法: sudo gem ...
- Ubuntu Android Studio 无法通过起动器开启
问题: 1.可以通过终端开启 2.通过Android-Studio建立的Application无法启动, 提示 No JDK found. Please validate either STUDIO_ ...
- JSEL 表达式
JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的.在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定 ...
- Spring-----Spring Jar包
转载自:http://blog.csdn.net/hekewangzi/article/details/51713110
- Linux学习之服务器端口查看的方法
1.用netstat查看: [grid@rac121 admin]$ netstat -anp | grep oracle (Not all processes could be identified ...
- ecshop开发日志之手机端虚拟商品自动发货
在ecshop官方模版收,web端的虚拟商品购买后不能像pc端那般直接在付款后出现虚拟商品的卡号,密码,截止日期一下为让手机购买也可以在付款后自动显示发货并能显示卡号密码截止日期首 先找到pc端的fl ...