安装带本地库的应用程序出错
来源:互联网 发布:420烟油怎么被淘宝禁了 编辑:程序博客网 时间:2024/05/22 18:26
安装带本地库的应用程序出错安装带本地库的应用程序时出错如下:W/PackageManager( 5691): Native ABI mismatch from package fileW/PackageManager( 5691): Package couldn't be installed in /data/app/com.example.android.simplejni.apk注意,并没有E/PackageManager( 5691)。出这个错的原因是android系统所在的架构与编译带本地方法应用程序的目标架构(TARGET_ARCH)不一致。如:该应用程序在是纯android源码下编译出来的,所以该应用程序本应该在ARM架构上运行,而此时你的设备android系统并不是ARM架构,而是MIPS的,这样,ARM的CPUabi为armeabi,而MIPS的CPUabi为mipso(好像是这样的)。这样就会出现Native ABI mismatch的错误。解决的这个错误的方法:在编译本地应用程序的android源码中修改3个地方:1、/build/target/board/generic/BoardConfig.mk中TARGET_CPU_ABI := armeabi改成:TARGET_CPU_ABI := XXXX这样修改后的结果是:生成的文件系统(android镜像)中的/system/中的build.prop会修改这样一项内容:ro.product.cpu.abi=XXXX或者第1步我们不需要修改源码,直接把build.prop中的这样内容修改成:ro.product.cpu.abi=XXXX,重启系统即可。但后两步的内容还是不能少。 2、build/core/definitions.mk中define add-jni-shared-libs-to-package$(hide) rm -rf $(dir $@)lib$(hide) mkdir -p $(dir $@)lib/armeabi$(hide) cp $(PRIVATE_JNI_SHARED_LIBRARIES) $(dir $@)lib/armeabi$(hide) (cd $(dir $@) && zip -r $(notdir $@) lib)$(hide) rm -rf $(dir $@)libendef改成:define add-jni-shared-libs-to-package$(hide) rm -rf $(dir $@)lib$(hide) mkdir -p $(dir $@)lib/XXXX$(hide) cp $(PRIVATE_JNI_SHARED_LIBRARIES) $(dir $@)lib/XXXX$(hide) (cd $(dir $@) && zip -r $(notdir $@) lib)$(hide) rm -rf $(dir $@)libendefXXXX表示生成的本地库(*.so)打包在*.apk中的路径:/lib/XXXX3、build/core/ensetup.mk中在下面代码后增加相同功能的代码 ifeq ($(TARGET_ARCH),arm) ABP:=$(ABP):$(PWD)/prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-eabi-4.4.0/bin endif增加的代码为: ifeq ($(TARGET_ARCH),ARCH_NAME) ABP:=$(ABP):$(PWD)/prebuilt/$(HOST_PREBUILT_TAG)/toolchain/COMP/bin endifARCH_NAME为你准备运行设备基于的CPU架构。COMP为该CPU架构所对应的编译器
- 安装带本地库的应用程序出错
- Android 获取本地已安装的应用程序
- 本地报表处理期间出错?(VS2012自带报表的使用)
- 关于java开发的应用程序带环境的自动安装
- 调用本地的应用程序
- 由于检索用户的本地应用程序数据路径时出错,导致无法生成 SQL Server 的用户实例
- 由于检索用户的本地应用程序数据路径时出错,导致无法生成 SQL Server 的用户实例
- 由于检索用户的本地应用程序数据路径时出错,导致无法生成 SQL Server 的用户实例
- 由于检索用户的本地应用程序数据路径时出错,导致无法生成 SQL Server 的用户实例。解决方案
- 【求助】安装安卓应用的时候出错:应用程序未安装
- Silverlight应用程序的本地通讯
- pp助手安装本地ipa应用程序
- dotnet4的机器上应用程序出错
- FLEX从安装到第一个带数据库连接的WEB应用程序
- Cordova 生成错误 安装本地 npm 包时出错 解决方案
- 使用本地方法扩展你的应用程序
- 在网页中调用本地的应用程序
- 开发供本地使用的 Web 应用程序
- mysql的扩展性设计之主辅架构
- JavaScript中各种编码解码函数的区别和注意事项
- Java设计模式之工厂模式
- AjaxPro ‘未定义’解决方案
- Oracle 10g java.lang.Exception: Exception in sending Request :: null
- 安装带本地库的应用程序出错
- 一个体现Java接口及工厂模式优点的例子(经典)
- 嵌入式web服务器预研报告(转)
- WCF 跟踪日志
- C++ 学习之构造函数:构造函数小结1
- 抽象类和接口的区别
- 一个轻量级的分页框架
- iphone中cocoa里frame和bounds 的区别
- 常用日期函数