【问题标题】:Android/AOSP Android.mk building and support-v4 AAR etcAndroid/AOSP Android.mk 构建和支持-v4 AAR 等
【发布时间】:2019-01-28 16:18:47
【问题描述】:

我正在使用 AOSP 构建一个应用程序作为系统映像的一部分,并尝试将 support-v4 等库包含为 AARs 用于应用程序 / 在应用程序的 libs/ 文件夹中。否则,这可以正常工作,并且应用程序本身和整个系统映像都可以正常构建,但是在尝试打开应用程序时会出现运行时崩溃。它们似乎都与运行时找不到特定的support-v4等类有关,例如ViewCompatMarshmallow等。

现在,我检查了这些类实际上包含在 AAR 文件中,但是例如像这样:

ViewCompat$MarshmallowViewCompatImpl.class

而如果我检查源代码,例如support-v4,它们被包含为

ViewCompatMarshmallow.java

那么不应该把它作为

包含在 AAR 中吗?

ViewCompatMarshmallow.class

?

我怀疑这可能是某种 Android.mk 问题,因为这是我需要在我的应用程序中使用的问题。不幸的是,Gradle 不是一种选择。

我已经声明了例如根据需要支持-v4 AAR 库:

LOCAL_STATIC_JAVA_AAR_LIBRARIES += support-v4-26.0.0

LOCAL_AAPT_FLAGS += --auto-add-overlay
LOCAL_AAPT_FLAGS += --generate-dependencies
LOCAL_AAPT_FLAGS += --extra-packages android.support.v4
LOCAL_AAPT_FLAGS += --extra-packages android.support.v4.app
LOCAL_AAPT_FLAGS += --extra-packages android.support.v4.view
(etc. all the required packagenames) 

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += support-v4-26.0.0:libs/support-v4-26.0.0.aar

AAR 文件本身来自 Android SDK 的 m2repository 文件夹,所以它应该是“官方的”和正确的,对吧?

有什么想法吗?

谢谢!

【问题讨论】:

    标签: android android-support-library android-source android.mk support-v4


    【解决方案1】:

    回答我自己 - 问题是 / 是 AAPT/AAPT2 构建系统因从 *.aar 文件中提取内容而被破坏。

    因此,如果您有例如*.aar 内的 libs/ 文件夹中的一些 *.jar 文件未被拾取,然后导致运行时崩溃并出现 ClassDefNotFoundExceptions.

    所以,基本上答案已经在这里了: How to include .aar in AOSP with android.mk

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      相关资源
      最近更新 更多