Сборка и поддержка Android / AOSP Android.mk - v4 AAR и т. Д.

Я создаю приложение, которое будет частью образа системы с помощью AOSP, и пытаюсь включить библиотеки support-v4 и т. Д. Как AAR. для приложения / в папке libs / приложения. В противном случае это работает нормально, и само приложение и весь образ системы строятся нормально, но при попытке открыть приложение возникают сбои во время выполнения. Все они, похоже, связаны с тем, что во время выполнения не удалось найти определенные классы поддержки v4 и т. Д., Такие как ViewCompatMarshmallow и т. Д.

Теперь я проверил, и эти классы фактически включены в файл AAR, но, например, нравится:

ViewCompat $ MarshmallowViewCompatImpl.class

Если я проверю исходный код, например, поддержка-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 взят из папки m2repository для Android SDK, так что он должен быть "официальным" и правильным, не так ли?

Любые идеи?

Спасибо!


person Androidish    schedule 28.01.2019    source источник


Ответы (1)


Отвечая самому себе - проблема заключалась / в том, что система сборки AAPT / AAPT2 не работает из-за того, что происходит с извлечением материала из файлов * .aar.

Таким образом, если у вас, например, какой-то файл * .jar внутри папки libs / внутри * .aar, который не обрабатывается и затем приводит к сбоям во время выполнения с ClassDefNotFoundExceptions .

Итак, в основном ответ уже был здесь: Как включить .aar в AOSP с помощью android.mk

person Androidish    schedule 30.01.2019