Я пытаюсь добавить библиотеку Jackson JSON в свой проект AOSP. Я могу скомпилировать мой проект и прошить в телефон, но я получаю сообщение об ошибке выполнения:Как добавить стороннюю библиотеку в сборку Android AOSP?
E/JavaBinder(1689): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/fasterxml/jackson/core/JsonFactory;
...
E/JavaBinder(1689): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.fasterxml.jackson.core.JsonFactory" on path: DexPathList[[zip file "/system/framework/guice.jar", zip file "/system/framework/beanshell.jar", zip file "/system/framework/services.jar", zip file "/system/framework/ethernet-service.jar", zip file "/system/framework/wifi-service.jar"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
Я попытался в том числе Джексон, как из источника, и банку. Вот мои Android.mk файлы для каждого:
ИСТОЧНИК Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-java-files-under,.)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE:= com.fasterxml.jackson.core
include $(BUILD_JAVA_LIBRARY)
# Copy XML to /system/etc/permissions/
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := com.fasterxml.jackson.core.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
ИСТОЧНИК com.fasterxml.jackson.core.xml
(ссылка выше)
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<library name="com.fasterxml.jackson.core.xml"
file="/system/framework/com.fasterxml.jackson.jar" />
</permissions>
JAR Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := jackson
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := jackson-core-2.5.0.jar
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_MODULE_SUFFIX := $(COMMON_JAVA_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
Я также добавил jackson
запись для в LOCAL_JAVA_LIBRARIES :=
секции файла Android.mk, где я хочу использовать Джексон (frameworks/base/services
). Независимо от того, что я пробовал, я получаю ClassNotFoundException
.
Что мне не хватает? Я сделал что-то ненужное?
возможно дублируется на http://stackoverflow.com/questions/18371626/add-one-android-project-as-a-library-in-aosp-app. Кажется, вам нужно добавить зависимость от вашего манифеста –
Mixaz