【问题标题】:Android cpp sources are being included in jar fileAndroid cpp 源包含在 jar 文件中
【发布时间】:2012-10-05 22:23:25
【问题描述】:

我正在将我的游戏移植到 Android。游戏是用 C++ 编写的,我使用 NDK 运行游戏逻辑代码。

我将 Android 特定的 Java 源代码与我的 C++ 源代码放在一起(实际上它是一个包含 C++ 和 Java 源文件的子文件夹 src/platform/android)。问题是,由于 C++ 和 Java 的源目录是相同的,所以当我构建我的 jar 文件时,ant 会将我所有的 .cpp 文件包含到 jar 中。

如何让 ant 忽略 .cpp 和 .mm(iPhone 版)文件?

【问题讨论】:

  • 为什么要在 Java 树中保留 CPP 文件?
  • 特别是因为 NDK 文档表明它们应该进入项目根目录 IIRC 之外的 jni/ 目录。
  • @AlexCohn 实际上 Java 源代码在 C++ 树上。我有一个名为 src 的文件夹,将所有资源保存在那里是有意义的。它不像他们没有组织在子文件夹中。
  • @CommonsWare 我不能只遵循文档中的说明,因为它是一个多平台项目。将 C++ 源代码保存在 jni 目录中对于 iOS/PC 构建毫无意义。
  • 我建议将所有 Java 放入 src/java 目录,并将其设置为 Java 构建的根路径。此子树将不包含 C 或 C++ 文件。

标签: android ant android-ndk


【解决方案1】:

如果您使用的是自定义 ant 脚本,您可以使用如下内容:

<target name="jar" depends="compile">
<jar jarfile="${dir.dist}/xxx.jar" 
     basedir="${dir.build}"
     excludes="**/*.cpp"/>
</target> 

【讨论】:

  • 我没有使用自定义的 ant 脚本。我正在使用默认的 Android SDK build.xml。我先看一下默认的build.xml,看看能不能加exclude,不过最好有一个可以在项目中完成,不改SDK的解决方案。
猜你喜欢
  • 2015-06-12
  • 2019-06-04
  • 1970-01-01
  • 2016-12-05
  • 1970-01-01
  • 2022-12-03
  • 2013-11-28
  • 2014-08-26
  • 1970-01-01
相关资源
最近更新 更多