【发布时间】:2017-07-21 18:24:37
【问题描述】:
我有一个项目,我想向其中添加外部库(并将它们与应用程序打包在一起),但我不确定它是否正在发生。我在此链接上阅读:
https://developer.android.com/guide/appendix/faq/commontasks.html
如何,但它们不会出现在任何 /data/data/project 目录中。有谁知道我如何确认这些库实际上已添加到项目中以在运行时使用?谢谢。
【问题讨论】:
我有一个项目,我想向其中添加外部库(并将它们与应用程序打包在一起),但我不确定它是否正在发生。我在此链接上阅读:
https://developer.android.com/guide/appendix/faq/commontasks.html
如何,但它们不会出现在任何 /data/data/project 目录中。有谁知道我如何确认这些库实际上已添加到项目中以在运行时使用?谢谢。
【问题讨论】:
如果您在项目的 Java 构建路径下将 jar 作为外部 jar 包含在内,那么这些类将被转换为 Dalvik 格式并在项目的 classes.dex 文件中可用,打包到 .apk 中。
要确认它们可用,请尝试使用 jar 中的某些内容(Eclipse 应该在您首次提供类名时建议相关的导入)构建并运行应用程序并查看它是否有效?如果它在开发中工作(例如,从 Eclipse 中的“运行”),那么它也可以在应用程序内置发布并作为 APK 分发时工作。
【讨论】:
您还可以将 jar 放在您的源文件夹之一下(可能创建特殊的“libs”)并将其添加到构建路径。
【讨论】:
请注意 - 外部库(根据 Java JDK 中的某个版本或其他库编译)在 android 下运行时有时可能会出现问题。这是因为 Dalvik 运行时有自己的 Java 框架库,它提供了标准 JDK Java 框架库中的大部分(但不是全部)Java API。
您确实应该针对 android 库重新编译任何外部库,以便您可以在编译时看到任何缺少的 API - 并在那里修复问题。否则,当您从 Android 应用程序调用外部库时,您将面临在 Dalvik 下运行时错误的风险。见http://geekswithblogs.net/cyberycon/archive/2011/05/17/using-external-libraries-with-android.aspx 更多细节。
【讨论】: