Androidが自分で追加したモジュールがuserモードでコンパイルされない問題

1689 ワード

Androidが自分で追加したモジュールがuserモードでコンパイルされない問題
 
私たちは開発中、自分で独立したモジュールを追加する必要があるときによく遭遇しますが、筆者は以前もこの問題にあまり関心を持っておらず、Androidを書くと思っていました.mkでいいですが、実はそうではありません.
/声明:本博の内容はすべてhttp://blog.csdn.net/sundesheng125オリジナル、転載は出典を明記して下さい、ありがとうございます!
カスタムモジュールをandroidの最上位ディレクトリdevelopmentの下に置きます.例えば、モジュール名はlibcsiJni、モジュールのAndroidです.mkは以下の通りである.
ifeq ($(TARGET_PRODUCT),crane_EW1021H_C)

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional eng
#LOCAL_MODULE_TAGS := eng

LOCAL_SRC_FILES := csilib.cpp         

LOCAL_C_INCLUDES:=      \
        $(TOP)/device/softwinner/common/hardware/include \
        $(TOP)/frameworks/base/include \
        device/softwinner/crane-common/hardware/libcsidecoder 
                
LOCAL_SHARED_LIBRARIES:= libutils libbinder libui liblog libcutils libcsidecoder

ifeq ($(DLOPEN_LIBSECCAMERA),1)
LOCAL_SHARED_LIBRARIES+= libdl
endif

LOCAL_PRELINK_MODULE := false

LOCAL_MODULE:= libcsiJni

include $(BUILD_SHARED_LIBRARY)

endif

engモードでコンパイルすると、正常にコンパイルできます.ただしuserモードではコンパイルせず、手動でこのディレクトリに入り、mmを実行すると正常にコンパイルできます.Engとuserバージョンの違いは一般的に知られていますが、optionalを使用すると、すべてのモードでコンパイルできます.何が原因ですか.
現象的には、コンパイルパスが追加されていないはずです.検索してみると、カスタムモジュールにコンパイル指定を追加する必要があります.PRODUCT_PACKAG環境変数.デバイスの下にある特定の製品ディレクトリのcrane_productXXX.mkまたはbuild/target/product/core.mkに追加します.例は次のとおりです.
PRODUCT_PACKAGES += \

    libcsiecoder \

    libcsiJni \

    CSIIN

自分のこのような問題はとても初級の問題で、技術の含有量がなくて、ノートにしましょう!