Я занимаюсь разработкой 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 должен быть другим? Но ... это работает сейчас.