我的 Mac 上有一个 Android 构建环境。当我运行时ant debug
,它会干净地打包libandroidnative.so
在 APK 文件中以进行部署。这按预期工作。
我正在将构建设置迁移到 Windows PC。当我运行时ant debug
,它成功完成,没有将 `libandroidnative.so' 打包到 APK 文件中。
代码库完全相同——这是从同一个 repo 中提取的。NDK (r8) 和 SDK (2013-05-22) 的版本完全相同。
这是我的 Mac 上的(工作)输出:
res/layout/main.xml
AndroidManifest.xml
resources.arsc
res/drawable-hdpi/ic_launcher.png
res/drawable-ldpi/ic_launcher.png
res/drawable-mdpi/ic_launcher.png
res/drawable-xhdpi/ic_launcher.png
classes.dex
lib/armeabi/gdbserver
lib/armeabi/libandroidnative.so <--- success!
lib/x86/gdbserver
lib/x86/libandroidnative.so
META-INF/MANIFEST.MF
META-INF/CERT.SF
META-INF/CERT.RSA
这是我的 PC 上的非工作输出:
res/layout/main.xml
AndroidManifest.xml
resources.arsc
res/drawable-hdpi/ic_launcher.png
res/drawable-ldpi/ic_launcher.png
res/drawable-mdpi/ic_launcher.png
res/drawable-xhdpi/ic_launcher.png
classes.dex
lib/armeabi/gdbserver
lib/armeabi-v7a/gdbserver
lib/x86/gdbserver
META-INF/MANIFEST.MF
META-INF/CERT.SF
META-INF/CERT.RSA
请注意,同样的事情发生在 Eclipse 构建中。
这是我的 Ant 构建文件(无注释):
<?xml version="1.0" encoding="UTF-8"?>
<project name="AndroidNativeLayer" default="help">
<property file="local.properties" />
<property file="ant.properties" />
<property environment="env" />
<condition property="sdk.dir" value="${env.ANDROID_HOME}">
<isset property="env.ANDROID_HOME" />
</condition>
<loadproperties srcFile="project.properties" />
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
unless="sdk.dir"
/>
<import file="custom_rules.xml" optional="true" />
<import file="${sdk.dir}/tools/ant/build.xml" />
</project>