fir*_*exx 3 android android-source
我正在尝试将自定义包添加到AOSP下frameworks/opt/mypackage.
我提供了一个Android.mk包含以下内容的Makefile:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := mypackage
include $(BUILD_JAVA_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
在另一个框架中,我出去使用这个包.例如,在电话包中.
但不幸的是,电话框架无法使用我的软件包.我将我的软件包添加到LOCAL_JAVA_LIBRARIES电话中的变量中,Android.mk但是当代码执行时它会给我01-11 16:51:01.835: E/AndroidRuntime(1789): java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
我错过了什么?
编辑:设置include $(BUILD_STATIC_JAVA_LIBRARY)而不是include $(BUILD_JAVA_LIBRARY)在我的Makefile中,并将我的包添加到LOCAL_STATIC_JAVA_LIBRARIES框架中运行良好.然而:问题是为什么它不适用于非静态库.
这是因为您需要本地库的权限文件.
跟着这些步骤:
将您的lib名称"mypackage"添加到LOCAL_JAVA_LIBRARIES您要使用它的软件包的Android.mk中.
像这样添加xml权限文件:
com.mypackage.platform_library.xml
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<library name="com.mypackage.platform_library"
file="/system/framework/com.mypackage.platform_library.jar"/>
</permissions>
Run Code Online (Sandbox Code Playgroud)
此文件必须放在设备的/ system/etc/permissions中.确保mypackage.jar位于设备上的指定位置.
<uses-library android:name="com.mypackage.platform_library" />在这里你可以找到一个例子.
| 归档时间: |
|
| 查看次数: |
4860 次 |
| 最近记录: |