java - 如何在eclipse项目aosp android中解析so文件映射

标签 java android makefile android-ndk android-source

我正在 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/

关于java - 如何在eclipse项目aosp android中解析so文件映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60947912/

相关文章:

java - 如何在字符串中的 "| "之后在新行中打印数据

java - 在数据库中为用户和消息之间的 OneToMany 关系创建 NULL 值

java - android - 隐藏文件

android - 煤烟android-jars错误

linux - 在 ubuntu linux 上编译 mDNSResponder 时出错

java - 是java中的类型转换还是其他什么?

java - 从 Parse 下载文件抛出 NullPointerException

android - 如何获取 styles.xml 文件的资源标识符?

makefile - 如何在make中分割字符串?

emacs - 配置 Emacs FlyMake 以使用 Rakefile 和 Makefile