Android ndk + libgdx

Vla*_*mir 1 android-ndk libgdx


我在libgdx中有一个项目.我想添加原生支持.连接libgdx文件夹时,libs是files
\ armeabi\libgdx.so
\ armeabi\libandroidgl20.so
\ armeabi-v7a\libgdx.so
\ armeabi-v7a\libandroidgl20.so

当我构建库My.cpp时,文件夹armeabiarmeabi-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)
Run Code Online (Sandbox Code Playgroud)

我知道修改Android.mk,但我的所有尝试都失败了.请告诉我如何解决它.

小智 7

Eclipse Android工具在已经启动的项目中"添加本机支持"之后对我有用的方式(在每次重建之后搞砸了这个东西并删除了libgdx的so文件).

1.-在"jni"文件夹中创建一个子目录结构来放置libgdx的共享库

  • JNI
    • 共享
      • libgdx
        • armeabi
          • libandroidgl20.so
          • ligdx.so
        • armeabi-V7A
          • libandroidgl20.so
          • libgdx.so
    • Android.mk
    • Application.mk
    • my_app.cpp

2.-在"LOCAL_PATH:= $(call my-dir)"之后将以下行添加到Android.mk

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)
Run Code Online (Sandbox Code Playgroud)

3.-将以下行添加到Application.mk(如果此文件不存在,请在与Android.mk相同的文件夹中创建一个)

APP_ABI := armeabi armeabi-v7a
APP_MODULES := my_app gdx androidgl20
Run Code Online (Sandbox Code Playgroud)

这就是全部,伙计们!