2016-12-19 1 views
1

Je rencontre un problème lors de la création du code source Android (Nougat). J'ai un module système nommé poweroffhandler, écrit en C++ et a le fichier Android.mk comme suit.Android System Module ne génère pas de sortie lors de la génération

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

LOCAL_SRC_FILES:= \ 
    #src_files 

LOCAL_SHARED_LIBRARIES := \ 
    #libraries 

LOCAL_MODULE:= poweroffhandler 

include $(BUILD_EXECUTABLE) 

Quand j'ajouter le fichier $(error error_message) il se bloque (avec le message d'erreur « error_message ») et arrête toute construction. (Ainsi, le module est inclus la séquence de construction), mais il ne produit aucune sortie après séquence de construction.

J'ai essayé de créer un fichier .rc associé comme suit.

Ajout du fichier Android.mk ->

LOCAL_INIT_RC := PowerOffHandler.rc 

créé un nouveau fichier nommé PowerOffHandler.rc

service poweroffhandler /system/bin/poweroffhandler 
    class core 
    user graphics 
    group graphics audio 
    disabled 
    oneshot 

Lorsque je crée un fichier .rc il produit une sortie à intermediates dossier, mais pas dans le dossier system/bin.

Et la partie bizarre est que je peux construire le module en disant du projet racine: make poweroffhandler. Alors je n'ai aucun problème du tout, le problème est que je ne peux pas utiliser les scripts build all pour ce module (donc je ne peux pas procéder à l'intégration autonome).

Toute aide sera appréciée, merci

Répondre

0

J'ai trouvé la réponse, lorsque vous écrivez un module de système:

  • Vous devez enregistrer votre Android.mk (par exemple en disant include $(call all-subdir-makefiles) au dossier de niveau supérieur)
  • Vous devez enregistrer votre module (spécifié par LOCAL_MODULE:= poweroffhandler) à {root}/build/target/product/embedded.mk en disant PRODUCT_PACKAGES += poweroffhandler