Сборка проекта AOSP с приложением gradle build - PullRequest
0 голосов
/ 05 сентября 2018

Я занимаюсь разработкой Android AOSP-проекта с моим собственным приложением. Все работало отлично, пока я не попробую обновить версию Gradle с 2.14 до 4.4. У меня есть следующий файл Android.mk, который работает с Gradle 2.14, но не с Gradle 4.4:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_PACKAGE_NAME := MyAndroidApp
LOCAL_MODULE := MyAndroidApp
LOCAL_MODULE_TAGS := optional


LOCAL_APK_FILE := app/build/outputs/apk/MyAndroidApp.apk

$(info $(shell cd external/MyAndroidApp/;JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ ./gradlew assembleDebug >&2))
LOCAL_MODULE_CLASS := APPS
LOCAL_SRC_FILES := $(LOCAL_APK_FILE)
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)

Мой проект AOSP использует старую версию Android, поэтому он должен быть собран с Java 6, поэтому я должен изменить файл Android.mk, чтобы использовать более новую версию Java, которая требуется Gradle 4, но эта версия Android.mk работает с приложением используя gradle 4.4.

Когда я пытаюсь построить свой проект, я получаю сообщение об ошибке:

       File 'out/target/product/myProject/obj/APPS/MyAndroidApp_intermediates/MyAndroidApp.apk' does not exist.
      Must remake target 'out/target/product/myProject/obj/APPS/MyAndroidApp_intermediates/MyAndroidApp.apk'.
target Prebuilt APK: MyAndroidApp (out/target/product/myProject/obj/APPS/MyAndroidApp_intermediates/MyAndroidApp.apk)
make: *** [out/target/product/myProject/obj/APPS/MyAndroidApp_intermediates/MyAndroidApp.apk] Error 1
make: *** Deleting file 'out/target/product/myProject/obj/APPS/MyAndroidApp_intermediates/MyAndroidApp.apk'

У кого-нибудь есть предложения? Может быть, мой Andoid.mk должен быть другим? Но ... это работает сейчас.

1 Ответ

0 голосов
/ 14 сентября 2018

Может быть, вы можете отделить приложение gradle и создать для него apk. А затем создайте проект в AOSP и используйте Android.mk для создания вашего apk-файла, что позволит избежать сборки вашего приложения gradle в Android.mk. Хотя это глупо и просто, оно отлично работает в моей работе.

...