1


libgdx にプロジェクトがあります。ネイティブ サポートを追加したい。libgdx フォルダを接続する場合、libs はファイル
\ armeabi \ libgdx.so
\ armeabi \ libandroidgl20.so
\ armeabi-v7a \ libgdx.so
\ armeabi-v7a \ libandroidgl20.so です。

ライブラリMy.cpp、フォルダーarmeabiおよびarmeabi-v7aをビルドすると、上書き されたarmeabiフォルダーにはMy.soのみが含まれ、フォルダーarmeabi-v7aは空になります。エラーが発生します。

私のファイルAndroid.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := My
### Add all source file names to be included in lib separated by a whitespace
LOCAL_SRC_FILES := My.cpp
include $(BUILD_SHARED_LIBRARY)

Android.mk を変更することは知っていますが、私の試みはすべて失敗しました。修正方法を教えてください。

4

2 に答える 2

7

The way that works for me after Eclipse Android tools' "add native support" in an already started project (that messed up the thing and removes libgdx's so files after each rebuild).

1.- Make a subdir structure inside "jni" folder to put libgdx's shared libs

  • jni
    • shared
      • libgdx
        • armeabi
          • libandroidgl20.so
          • ligdx.so
        • armeabi-v7a
          • libandroidgl20.so
          • libgdx.so
    • Android.mk
    • Application.mk
    • my_app.cpp

2.- Add the following lines to Android.mk after "LOCAL_PATH := $(call my-dir)"

include $(CLEAR_VARS)
LOCAL_MODULE := gdx
LOCAL_SRC_FILES := shared/libgdx/$(TARGET_ARCH_ABI)/libgdx.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := androidgl20
LOCAL_SRC_FILES := shared/libgdx/$(TARGET_ARCH_ABI)/libandroidgl20.so
include $(PREBUILT_SHARED_LIBRARY)

3.- 次の行を Application.mk に追加します (このファイルが存在しない場合は、Android.mk と同じフォルダーに作成します)。

APP_ABI := armeabi armeabi-v7a
APP_MODULES := my_app gdx androidgl20

それだけです。

于 2012-11-08T17:36:26.003 に答える
0

まず、両方のアーキテクチャを明示的に有効にする必要があります。Application.mk次の行を含むファイルを作成します。

APP_ABI := armeabi armeabi-v7a

リンクのためにライブラリを参照する必要もあります。以下を Android.mk に追加します。

LOCAL_SHARED_LIBRARIES += libgdx libandroidgl20  

次に、サード パーティのライブラリをビルドに使用できるようにする必要があります。ガイダンスはこちら: Android NDK building - Include LOCAL_SHARED_LIBRARIES?

于 2012-08-31T17:35:59.220 に答える