2013-01-10 5 views
10

私はlibpngを私のアンドロイドのndkプロジェクトにリンクすることについてたくさんのトピックを検索しましたが、私の問題の正解を見つけました。android ndkプロジェクトでlibpngを追加

これは私のプロジェクトの階層です:

JNI Android.mkのlibpngフォルダに

different_cpp_files 
different_hpp_files 
Android.mk 
libpng 
    different_cpp_files 
    different_hpp_files 
    Android.mk 


LOCAL_PATH:= $(call my-dir) 

include $(CLEAR_VARS) 

LS_C=$(subst $(1)/,,$(wildcard $(1)/*.c)) 

LOCAL_MODULE := png 

LOCAL_SRC_FILES := \ 

$(filter-out example.c pngtest.c,$(call LS_C,$(LOCAL_PATH))) 

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) 

LOCAL_EXPORT_LDLIBS := -lz 

include $(BUILD_STATIC_LIBRARY) 

は、私はすべてが右ここにあると仮定..

JNIフォルダ内の

Android.mkは:


LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LS_CPP=$(subst $(1)/,,$(wildcard $(1)/*.cpp)) 

LOCAL_MODULE := pacman 

LOCAL_CFLAGS := -Wno-psabi 

LOCAL_SRC_FILES := $(call LS_CPP,$(LOCAL_PATH)) 

LOCAL_LDLIBS := -landroid -llog -lEGL -lGLESv1_CM -lOpenSLES 

LOCAL_STATIC_LIBRARIES := android_native_app_glue png 

include $(BUILD_SHARED_LIBRARY) 

$(call import-module,android/native_app_glue) 

$(call import-module,libpng) 

最後の行は、私は今、私はのlibpngをコンパイルしたい(アンドロイド - NDKソースのディレクトリに)native_app_glue libのようlibpngを得たことを示しています私のプロジェクトから。 Android.mkファイルで何を変更する必要がありますか?

答えて

15

私はあなたのための別の方法持っている:ここから

  1. ダウンロードするすべてのファイルを、どこでも、あなたのシステムに新しいフォルダに貼り付けます。
    https://github.com/julienr/libpng-android

  2. は、フォルダに移動して、実行:
    ./build.sh

  3. あなたはにlibpng.aファイルを取得します3210
    コピーし、このファイルに:
    [YOUR_ANDROID_NDK_FOLDER]/platforms/[ALL_FOLDERS_IN_HERE]/arch-arm/usr/lib/

  4. は今、あなたは簡単なラインですべてのプロジェクトでのlibpngを使用することができます。
    LOCAL_LDLIBS += -lpng

  5. は、あなただけのあなたのcppの中でこれを含める必要があります:
    #include <png.h>

楽しくお楽しみください!

+2

お返事ありがとうございますが、私が欲しいものではありません。私は自分のプロジェクトを会社に送る必要があります。私は自分のプロジェクトの仕事をするために何をしなければならないのかを教えてくれるのは礼儀正しいとは思わない - 私はandroid_ndk_folderなどでファイルをコピーすることを意味する。彼らはそれをコンパイルするだけで、すべての必要なファイルをプロジェクトの中に入れる必要があります。 –

+3

これはARMデバイスでのみ有効で、古いデバイスでのみ有効です。あなたはMIPS、64ビットARM、x86、64ビットx86、浮動小数点ユニットを持つARMを欠いています... – dascandy

+0

これはWidnwosの開発者の魅力のように働きました...それはlibpngの古いバージョンでも動作しました。 1.4.19でテスト済みです。公式サイトからダウンロードし、AndroidとApplication.mkファイルをダウンロードしたフォルダにコピー&ペーストして、ndk-build – velval