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/ ...
随机推荐
- 全国计算机等级考试二级教程-C语言程序设计_第13章_编译预处理和动态存储分配
free(p);//释放内存 p = NULL;//软件工程规范,释放内存以后,指针应该赋值为空 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h ...
- 数据存储(三)--JSON数据处理
JSON是一种轻量级的数据交换格式,具有良好的可读和便于高速编写的特性,从而能够在不同平台间进行数据交换.JSON採用兼容性非常高的文本格式,同一时候也具备类似于C语言体系的行为.JSON能够将Jav ...
- DevExpress控件之:ChartControl 动态绑定数据
private void BindData(ViewType vt) { chartControl1.Series.Clear(); //Series series1 = new Series(&qu ...
- linux 搭建Tomcat
这几天用虚拟机装了centos ,以前没有用过linux,先将搭建java web 环境记录如下: 一.卸载系统安装的jdk环境. 1.安装好的CentOS会自带OpenJdk,用命令 java -v ...
- 前端制作中,IE6还有必要兼容吗?
国内市场对IE 6~7支持还有一定需求,但对于一个前端开发者,我们应该去推动这个行业向前发展,而不是一味迁就.妥协. 曾经,能够提供支持老版本 IE 是一个前端开发者的必备技能.随着移动互联网大潮来临 ...
- HTML5实现坦克大战(一)
Tank 字段 x:坦克的中心点的横坐标 y:坦克的中心点的纵坐标 dir:坦克的前进的方向 spped:坦克的速度 color:坦克的颜色,用于区分种类不同的坦克 bullet:坦克的子弹 为a ...
- Ubuntu自带的vi编辑器太难用了,换
由于Ubuntu预安装的是tiny版本,就会导致我们在使用上的产生不便.所以我们要安装vim的full版本. 首先,先卸掉旧版的vi,输入以下命令: sudo apt-get remove vim-c ...
- Demo 示例控制输入光标位置
<!DOCTYPE html> <html> <head> <meta charset=utf-8 /> <meta name="aut ...
- Android 树形菜单
首先来一张萌萌哒的效果图(比较懒 - -) 然后是代码: // Node package com.example.treeview.utils; import java.util.ArrayList; ...
- 提取 ECharts 中的svg地图信息
地图的需求还是蛮大的,全国都要自己画的话,还是需要投入比较大的人力. ECharts中有地图,那我们能不能把里面的地图文件提取出来呢,主要逻辑在map.js中. 看源代码发现,ECharts中地图信息 ...