2

我用 eclipse 配置 ndk 以便自动构建我的 c++ 代码。但是我在 libs 文件夹中有两个外部 .so 文件。每次构建项目时,eclipse都会自动删除这些外部的.so文件。是否可以告诉 eclipse 不要删除这些外部文件。

4

2 回答 2

1

解决方案在这里

总结(和补充):

  • 将您的外部(例如,libexternal.so)库(或库)复制到“jni”文件夹中的另一个文件夹;例如“myproject/jni/prebuilt”。

  • 将以下块添加到现有的“jni/Android.mk”(每个外部库一个块):

    include $(CLEAR_VARS)
    LOCAL_MODULE := libexternal
    LOCAL_SRC_FILES := prebuilt/libexternal.so
    include $(PREBUILT_SHARED_LIBRARY)
    
  • 在现有的“jni/Application.mk”中将“libexternal”添加到“APP_MODULES”。'APP_MODULES' 应该已经列出了你的 JNI 模块(例如,'myjnimodule'):

    APP_MODULES := libexternal myjnimodule
    
  • 确认“jni/Application.mk”中存在以下块。使用适当的目标架构:

    APP_ABI := armeabi-v7a
    

结果是,作为调用“ndk-build”的一部分,外部库被复制到您的“myproject/libs/armeabi-v7a”文件夹中。

于 2015-07-02T02:45:35.577 回答
1

John Doedoe 给出的解决方案让我想到了另一种可能性,特定于 Eclipse(在 Mars 1 版本上测试):

  • 在项目资源管理器中右键单击您的项目。
  • 进入属性。
  • 进入“C/C++ 构建”。
  • 进入“生成器设置”选项卡。
  • 取消选中“使用默认构建命令”。
  • 在“构建命令”文本框中输入您的目标,例如:ndk-build APP_ABI="armeabi-v7a"
  • 申请/确定

在此处输入图像描述

例如,这将避免更改构建机器上的行为。

于 2016-09-20T15:09:06.080 回答