Il existe plusieurs façons de résoudre votre problème.
1. Ajouter un préconstruit .apk
Vous ne devez pas mettre votre code source dans l'arborescence PSBA. Vous pouvez simplement ajouter votre fichier .apk
, le mettre soit dans packages/apps/YourApp
, ou vendor/yourname/packages/apps/YourApp
, ou encore your_dir_name/packages/apps/YourApp
et créer un fichier Android.mk
pour construire le système pour déterminer votre application. Votre Android.mk
sera comme:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := YourApplication # your .apk name
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
Avantages: vous pouvez construire votre projet avec gradle
.
2. Ajoutez le code source pour PSBA
Si vous voulez toujours placer votre code source pour packages/apps
et construire là-bas, vous pouvez mettre un ConstrainsLayout
dans le répertoire de votre projet libs/
et ajouter à votre Android.mk
quelque chose comme :
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# List of static libraries to include in the package
LOCAL_STATIC_JAVA_LIBRARIES := constraint-layout
# Build all java files in the java subdirectory
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# Name of the APK
LOCAL_PACKAGE_NAME := YourApplication
# Tell it to build an APK
include $(BUILD_PACKAGE)
Si vous ne le faire fonctionner (je ne l'ai pas rencontré ce problème, but he did):
LOCAL_STATIC_JAVA_LIBRARIES := libconstraint-layout
include $(BUILD_PACKAGE)
Autres trucs, et enfin
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libconstraint-layout:libs/constraint-layout.aar
Inconvénients: Vous devrez construire votre code soit avec make par mma
ou mm -B
, ou d'avoir un gradle
comme votre deuxième système de construction pour le développement. La deuxième option fonctionnera, mais pour établir une construction complète et pour avoir votre .apk
intégré dans le répertoire out/
vous devrez le construire avec make
.
3. Ajout d'un ConstraintLayout
Si vous voulez avoir plusieurs applications qui utilisent une mise en page de contrainte, vous pouvez l'ajouter à un nouveau module de bibliothèque comme précompilé .aar
. Peut se trouver quelque part dans 'vendeur/votre nom/bibliothèques' ou 'votre_répertoire/bibliothèques' respectivement. Il est similaire à l'ajout d'un .apk
préconfiguré (je n'ai ajouté aucun .aar
comme ceci, donc ceci n'a pas été testé par moi et peut contenir des erreurs!):
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := constraint-layout
LOCAL_SRC_FILES := $(LOCAL_MODULE).aar
LOCAL_MODULE_SUFFIX := .aar
include $(BUILD_PREBUILT)
Et après cela, en vous de votre application Android.mk
devra ajouter:
LOCAL_STATIC_JAVA_LIBRARIES := constraint-layout
Vous pouvez ajouter un .aar
de ConstraintLayout
au prebuilds/
comme il finira par être là un jour .
Il y a un bon sujet à propos Android.mk
: https://wladimir-tm4pda.github.io/porting/build_cookbook.html
Merci! L'option # 3 a fonctionné comme par magie! – kotsen