eclipse项目aosp中so文件映射如何解决android
How to resolve so file mapping in eclipse project aosp android
我在 aosp 9 工作,我将整个浏览器应用程序从 6 迁移到 9。
我有 librawrapper.so,可以在 jni/armv7-a/ 文件夹中找到。该项目是 eclipse,因此我无法在 gradle 中进行编辑。所以它只有 mk 文件。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
SODIR=armv7-a
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_TAGS := optional
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE := librawrapper.so
LOCAL_SRC_FILES := $(SODIR)/librawrapper.so
LOCAL_SHARED_LIBRARIES := libcutils
include $(BUILD_PREBUILT)
当我使用 mm 命令时,我可以在安装中看到:out/target/product/sabresd_6dq/system/lib/librawrapper.so
但是当我使用 make 命令使用整个构建时,构建是成功的,但是当我单击浏览器图标时,它崩溃了,当我检查日志时 system/lib 文件夹变空并抛出错误,
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/system/app/Browser/Browser.apk"],nativeLibraryDirectories=[/system/app/Browser/lib/arm, /system/lib, /vendor/lib, /system/lib, /vendor/lib]]] couldn't find "librawrapper.so"
我可以知道如何解决这个错误吗?是否可以在 mk 文件中添加或修改以启用 ndk 或正确地映射到 system/lib 文件夹中?
找到解决方案:
转到build/target/product/core_minimal.mk
添加这一行:
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.webview.xml:system/etc/permissions/android.software.webview.xml \
frameworks/native/cmds/librawrapper.so:system/lib/librawrapper.so
还需要在frameworks/native/cmds/
中添加librawrapper.so
然后编译。它将把它推入 system/lib/
我在 aosp 9 工作,我将整个浏览器应用程序从 6 迁移到 9。
我有 librawrapper.so,可以在 jni/armv7-a/ 文件夹中找到。该项目是 eclipse,因此我无法在 gradle 中进行编辑。所以它只有 mk 文件。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
SODIR=armv7-a
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_TAGS := optional
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE := librawrapper.so
LOCAL_SRC_FILES := $(SODIR)/librawrapper.so
LOCAL_SHARED_LIBRARIES := libcutils
include $(BUILD_PREBUILT)
当我使用 mm 命令时,我可以在安装中看到:out/target/product/sabresd_6dq/system/lib/librawrapper.so
但是当我使用 make 命令使用整个构建时,构建是成功的,但是当我单击浏览器图标时,它崩溃了,当我检查日志时 system/lib 文件夹变空并抛出错误,
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/system/app/Browser/Browser.apk"],nativeLibraryDirectories=[/system/app/Browser/lib/arm, /system/lib, /vendor/lib, /system/lib, /vendor/lib]]] couldn't find "librawrapper.so"
我可以知道如何解决这个错误吗?是否可以在 mk 文件中添加或修改以启用 ndk 或正确地映射到 system/lib 文件夹中?
找到解决方案:
转到build/target/product/core_minimal.mk
添加这一行:
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.webview.xml:system/etc/permissions/android.software.webview.xml \
frameworks/native/cmds/librawrapper.so:system/lib/librawrapper.so
还需要在frameworks/native/cmds/
中添加librawrapper.so然后编译。它将把它推入 system/lib/