1


我在 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)

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

4

2 回答 2

7

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

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

  • 杰尼
    • 共享
      • libgdx
        • 阿米亚比
          • libandroidgl20.so
          • ligdx.so
        • armeabi-v7a
          • libandroidgl20.so
          • libgdx.so
    • 安卓.mk
    • 应用程序.mk
    • 我的应用程序.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)

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 构建 - 包括 LOCAL_SHARED_LIBRARIES?

于 2012-08-31T17:35:59.220 回答