将外部JAR添加到Android AOSP构建时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将外部JAR添加到Android AOSP构建时出错相关的知识,希望对你有一定的参考价值。

我正在尝试将外部JAR文件(例如,gson或eventbus)添加到我的AOSP构建中。我尝试了两种不同的方式:

  • 将它们添加到prebuilts/misc/common/mylibs/并为dir创建android.mk文件。然后,我只在我的应用程序的Android.mk文件中包含lib的符号名称。
  • 将它们添加到我的自定义应用程序源代码中的子目录libs中,并通过应用程序的Android.mk文件直接添加它。

但是,这两种方法都产生了类似的错误,第二种方法如下:

ninja: error: 'packages/apps/Car/MyApp/packages/apps/Car/Myapp/libs/gson-2.6.2.jar', needed by 'out/target/common/obj/JAVA_LIBRARIES/gson_intermediate/classes.jack', missing and no known rule to make it.

我注意到错误消息中的奇怪重复路径。有人知道我做错了什么吗?

这是我的第二种方式的Android.mk文件:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res

LOCAL_PACKAGE_NAME := MyApp

LOCAL_CERTIFICATE := platform

LOCAL_MODULE_TAGS := optional

LOCAL_PRIVILEGED_MODULE := true

LOCAL_STATIC_JAVA_LIBRARIES += jsr305 gson

LOCAL_STATIC_ANDROID_LIBRARIES := android-support-v4

LOCAL_USE_AAPT2 := true

include packages/apps/Car/libs/car-stream-ui-lib/car-stream-ui-lib.mk
include packages/services/Car/car-support-lib/car-support.mk

include $(BUILD_PACKAGE)

include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := gson:$(LOCAL_PATH)/libs/gson-2.6.2.jar
include $(BUILD_MULTI_PREBUILT)
答案

从修复它的路径中删除$(LOCAL_PATH)

以上是关于将外部JAR添加到Android AOSP构建时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何将“aar”库添加到 AOSP?

向 AOSP 配置添加新符号时,silentoldconfig 无法构建

如何在 Android 项目中使用外部 JAR?

将gradle中的外部jar添加到Android项目

带有外部 jar 的 Android Proguard

Android Studio 3.5导入AOSP编译的classes.jar