在 Eclipse 中使用 aar - 为什么第 3 方 activity 在构建时解析而不是 运行 时?
Using aar in Eclipse - why does the 3rd party activity resolve at build time but not run time?
我有一个成熟的应用程序,需要引入一个 SDK 来包装相机并使其在 运行 时进行一些出色的处理。 SDK 以一些 aar 文件的形式出现,但我的应用程序仍然存在于 Eclipse 中。由于我大量的、热气腾腾的品牌结构和此集成的截止日期,完全迁移到 Android Studio 所需的不确定时间表将无法工作(目前),所以我将转换 aar 并将它们用于我的应用程序通过 Eclipse。
我遇到的问题是我需要启动库中的 activity,但即使我修复了所有构建时间引用问题,当 运行 应用程序一旦我到达应该开始 activity I get this error.
的地步
我已经通读并仔细检查了几十个解释如何使用 aar 文件的操作方法,我想我已经遵循了每一个步骤,包括:
- 解压 aar 文件并将它们打扮成单独的库项目,包括带有资源的文件结构、清单和 .jar
- 让需要库的项目添加它们
- 将库项目中包含的.jars添加到构建路径中(这一步在大多数文章中都没有列出,也不是项目构建所必需的,但它对我的问题没有帮助)
- 在您的 AndroidManifest.xml 中声明库引入并在其 AndroidManifest.xml
中声明的 activity
正如我所说,在构建时一切看起来都很好,所以我不确定还需要检查什么。因为我读到 Gradle 和 Android Studio 混搭在一起表现得非常好,我有一种预感,我应该在这些表现之间进行调节,但我不知道它可能是什么如果是这样的话。我想知道我是否正确地声明了第 3 方的 activity,但我不确定如何测试它,因为我认为测试它的唯一方法是为命名空间提供乱码,但即使那样没有抱怨。我也试过剖析 .apk 来查看 .dex 文件,但我无法破译任何有用的东西。
我的猜测是该库可能无法在 eclipse 中正确构建 - 甚至在将其作为依赖项添加到应用程序项目之前也是如此。
尝试查看 out/classes/*
并确保您有一个 .class 文件用于相关的 activity。我认为 .class 实际上应该在库中,并且最终也会出现在应用程序项目的 out/
目录中。
如果有任何本机文件 (x.so)(我想可能会有漂亮的相机东西),您可以在 [=11] 中查找 x.so 文件=] 库和应用程序项目以及 library.jar 文件的目录。
此用例可能考虑的另一个选项:https://github.com/ksoichiro/gradle-eclipse-aar-plugin
我们的应用似乎有一个错误版本的 appcompat-v7 支持库。其中的 .jars 与 SDK 附带的大小不同,并且缺少一些资源。我不知道我们是如何以这种方式结束的,也不知道这个糟糕的版本是从哪里来的。一旦我更换它,一切都很顺利。
后来,我确实遇到了需要将 .so 文件放入我制作的库中,正如 Stad Kurdziel 在他的回答中所说,这些文件来自 .aar 文件,但这导致了不同的错误(异常明确指出缺少 .so),我独立找到了解决方案。
我有一个成熟的应用程序,需要引入一个 SDK 来包装相机并使其在 运行 时进行一些出色的处理。 SDK 以一些 aar 文件的形式出现,但我的应用程序仍然存在于 Eclipse 中。由于我大量的、热气腾腾的品牌结构和此集成的截止日期,完全迁移到 Android Studio 所需的不确定时间表将无法工作(目前),所以我将转换 aar 并将它们用于我的应用程序通过 Eclipse。
我遇到的问题是我需要启动库中的 activity,但即使我修复了所有构建时间引用问题,当 运行 应用程序一旦我到达应该开始 activity I get this error.
的地步我已经通读并仔细检查了几十个解释如何使用 aar 文件的操作方法,我想我已经遵循了每一个步骤,包括:
- 解压 aar 文件并将它们打扮成单独的库项目,包括带有资源的文件结构、清单和 .jar
- 让需要库的项目添加它们
- 将库项目中包含的.jars添加到构建路径中(这一步在大多数文章中都没有列出,也不是项目构建所必需的,但它对我的问题没有帮助)
- 在您的 AndroidManifest.xml 中声明库引入并在其 AndroidManifest.xml 中声明的 activity
正如我所说,在构建时一切看起来都很好,所以我不确定还需要检查什么。因为我读到 Gradle 和 Android Studio 混搭在一起表现得非常好,我有一种预感,我应该在这些表现之间进行调节,但我不知道它可能是什么如果是这样的话。我想知道我是否正确地声明了第 3 方的 activity,但我不确定如何测试它,因为我认为测试它的唯一方法是为命名空间提供乱码,但即使那样没有抱怨。我也试过剖析 .apk 来查看 .dex 文件,但我无法破译任何有用的东西。
我的猜测是该库可能无法在 eclipse 中正确构建 - 甚至在将其作为依赖项添加到应用程序项目之前也是如此。
尝试查看 out/classes/*
并确保您有一个 .class 文件用于相关的 activity。我认为 .class 实际上应该在库中,并且最终也会出现在应用程序项目的 out/
目录中。
如果有任何本机文件 (x.so)(我想可能会有漂亮的相机东西),您可以在 [=11] 中查找 x.so 文件=] 库和应用程序项目以及 library.jar 文件的目录。
此用例可能考虑的另一个选项:https://github.com/ksoichiro/gradle-eclipse-aar-plugin
我们的应用似乎有一个错误版本的 appcompat-v7 支持库。其中的 .jars 与 SDK 附带的大小不同,并且缺少一些资源。我不知道我们是如何以这种方式结束的,也不知道这个糟糕的版本是从哪里来的。一旦我更换它,一切都很顺利。
后来,我确实遇到了需要将 .so 文件放入我制作的库中,正如 Stad Kurdziel 在他的回答中所说,这些文件来自 .aar 文件,但这导致了不同的错误(异常明确指出缺少 .so),我独立找到了解决方案。