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

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

ViewCompat $ MarshmallowViewCompatImpl.class

而如果我检查例如的源代码support-v4,它们作为

ViewCompatMarshmallow.java

因此,不应将其包含在AAR中

ViewCompatMarshmallow.class



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

我已经宣布根据需要support-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文件夹,因此它应该是“正式的”文件并且是正确的文件,对吧?

有任何想法吗?

谢谢!

最佳答案

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

因此,如果您有* .aar内的libs /文件夹内的某些* .jar文件,未被拾取,然后由于ClassDefNotFoundExceptions导致运行时崩溃。

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

07-28 02:21
查看更多