11

libpng を Android ndk プロジェクトにリンクすることについて多くのトピックを検索しましたが、私の問題に対する正しい答えを見つけました。誰かが私を助けてくれることを願っています。

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

ジニ

different_cpp_files
different_hpp_files
Android.mk
libpng
    different_cpp_files
    different_hpp_files
    Android.mk

libpng フォルダー内の 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)

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

4

1 に答える 1

16

私はあなたのために別の方法を持っています:

  1. ここからすべてのファイルをダウンロードして、システムの任意の場所にある新しいフォルダーに貼り付けます:
    https ://github.com/julienr/libpng-android

  2. フォルダに移動して実行します。
    ./build.sh

  3. [YOUR_FOLDER]/obj/local/armeabi/libpng.a
    このファイルを次の場所にコピーすると、libpng.aファイルが取得されます。
    [YOUR_ANDROID_NDK_FOLDER]/platforms/[ALL_FOLDERS_IN_HERE]/arch-arm/usr/lib/

  4. これで、すべてのプロジェクトでlibpngを次の簡単な行で使用できます。
    LOCAL_LDLIBS += -lpng

  5. これをcppに含めるだけです。
    #include <png.h>

楽しむ!

于 2013-01-14T17:00:50.893 に答える