Androidが自分で追加したモジュールがuserモードでコンパイルされない問題
1689 ワード
Androidが自分で追加したモジュールがuserモードでコンパイルされない問題
私たちは開発中、自分で独立したモジュールを追加する必要があるときによく遭遇しますが、筆者は以前もこの問題にあまり関心を持っておらず、Androidを書くと思っていました.mkでいいですが、実はそうではありません.
/声明:本博の内容はすべてhttp://blog.csdn.net/sundesheng125オリジナル、転載は出典を明記して下さい、ありがとうございます!
カスタムモジュールをandroidの最上位ディレクトリdevelopmentの下に置きます.例えば、モジュール名はlibcsiJni、モジュールのAndroidです.mkは以下の通りである.
engモードでコンパイルすると、正常にコンパイルできます.ただしuserモードではコンパイルせず、手動でこのディレクトリに入り、mmを実行すると正常にコンパイルできます.Engとuserバージョンの違いは一般的に知られていますが、optionalを使用すると、すべてのモードでコンパイルできます.何が原因ですか.
現象的には、コンパイルパスが追加されていないはずです.検索してみると、カスタムモジュールにコンパイル指定を追加する必要があります.PRODUCT_PACKAG環境変数.デバイスの下にある特定の製品ディレクトリのcrane_productXXX.mkまたはbuild/target/product/core.mkに追加します.例は次のとおりです.
自分のこのような問題はとても初級の問題で、技術の含有量がなくて、ノートにしましょう!
私たちは開発中、自分で独立したモジュールを追加する必要があるときによく遭遇しますが、筆者は以前もこの問題にあまり関心を持っておらず、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
自分のこのような問題はとても初級の問題で、技術の含有量がなくて、ノートにしましょう!