android 安装apk时出现INSTALL_FAILED_MISSING_SHARED_LIBRARY错误
给app组的同事提供基于add-on方式的jar包接口,调试过程中出现调试时遇到INSTALL_FAILED_MISSING_SHARED_LIBRARY错误。
以add-on方式封装接口的背景是,提供stub的空接口,app集成只是为了正常的引用jar包编译,而真正的运行时主要依赖当前的系统,这也就避免了由于系统jar主导接口的控制权,在接口没有大变化的情况下,app不用理会接口的实际实现。
app AndroidManifest.xml中添加对动态库的引用,如下:
<uses-library android:name="com.test.audio" />
置于此处,当系统没有添加的platform.xml(device路径/system/etc/permission/platform.xml)中时,应用报INSTALL_FAILED_MISSING_SHARED_LIBRARY错误
我们先看看android系统对应用开放的lib库是添加在哪里
framework/base/data/etc/platform.xml
<!-- This is a list of all the libraries available for application
code to link against. -->
<library name="android.test.mock"
file="/system/framework/android.test.mock.jar" />
<library name="android.test.runner"
file="/system/framework/android.test.runner.jar" />
<library name="javax.obex"
file="/system/framework/javax.obex.jar" />
<library name="org.apache.http.legacy"
file="/system/framework/org.apache.http.legacy.jar" />
于是我们添加自己的接口库到系统相应目录下,为了解耦合,直接单独添加自己的xml编译
platform_test_audio.xml
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<library name="com.test.audio"
file="/system/framework/com.test.audio.jar" />
</permissions>
接口模块的Andorid.mk添加编译:
########################
include $(CLEAR_VARS)
LOCAL_MODULE := platform_test_audio.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
#LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
**# 接口模块的jar包名,app运行真正依赖的库**
LOCAL_MODULE := com.test.audio
LOCAL_SRC_FILES := $(call all-java-files-under, libaudio/src/main/java)
# LOCAL_DEX_PREOPT := false
LOCAL_JAVA_LIBRARIES += framework
LOCAL_REQUIRED_MODULES := platform_test_audio.xml
include $(BUILD_JAVA_LIBRARY)
app使用use-library库,总结起来就是3点:
1.app 使用add-on的stub jar引用编译;
2.系统/system/framework存在运行依赖系统的接口具体实现jar包com.test.audio.jar;
3.系统/system/etc/permission/platfrom_xx.xml放开指定给app调用库的路径。
.
本文地址:https://blog.csdn.net/jeephao/article/details/107432720
推荐阅读
-
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
-
Android Studio调试手机或者安装APK的时候出现install failed test only
-
Android apk安装时出现“解析软件包错误”
-
win8安装爱站seo工具包时出现错误代码如何解决
-
VMware安装RedHat Linux系统时出现该光盘无法被挂载错误怎么办?
-
如何解决ubuntu安装selenium时出现错误:Cannot fetch index base URL http://pypi.python.org/simple/
-
安装驱动时出现“数据错误(循环冗余检查)”问题的解决办法图文详细介绍
-
无法安装KB5005033怎么办?安装KB5005033时出现错误0x80070003的解决办法
-
安装oracle 11g时,报启动服务出现错误,找不到OracleMTSRecoveryService的解决方法
-
android studio编程时出现的错误问题