gpt4 book ai didi

android - 使用预构建的 .so 库构建系统应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:35 25 4
gpt4 key购买 nike

我已经在这里停留了一个星期,试图将第 3 方 .so 库与我的应用程序一起构建到自定义 Android 系统中。我关注了http://www.maxters.net/2012/05/adding-prebuilt-shared-library-to-android-build-system/并成功将 .so 库作为预构建共享库添加到 Android 构建系统。现在我可以在 ../out/target/product/crespo4g/obj/lib/看到 .so 库。

但是这个目录下的库在刷机的时候是不会迁移到设备上的。我的 .so lib 也没有出现在/data/data/my_app_name/lib 中。所以在执行System.loadLibrary()时会出现UnsatisfiedLinkError

我以为有三种方法可以解决这个问题,但就是不知道如何实现:

  1. 也许我的应用程序未能向编译器指示我的 .so 与我的应用程序作为一个整体,因此 .so 库未与我的应用程序一起编译到系统镜像中。但是我确实通过“LOCAL_STATIC_LIBRARIES := libXX”声明了,有什么问题吗?
  2. 有没有办法将我的 .so 库构建到/system/lib/中?/system/lib/下的so libs是从哪里派生的?

我是 Android 开发的新手,请帮忙..

谢谢!

最佳答案

您可能需要根据 this answer 中的建议检查您的 makefile和 this one以及本 groups thread 中的建议

更新我原来的 makefile 不正确,但这对我构建 ICS 有用:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libmozglue
LOCAL_SRC_FILES := libmozglue.so
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_TAGS := optional
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE := libplugin-container
LOCAL_SRC_FILES := libplugin-container.so
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_TAGS := optional
include $(BUILD_PREBUILT)

以上是 firefox for android 所需的 native 库,我将其作为系统应用程序包含在我的自定义系统构建中。

关于android - 使用预构建的 .so 库构建系统应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15910015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com