使用 .aar NoClassDefFoundError 但类存在并且已 Dexed

2024-01-23

我有几个项目是为了创建 .aar 而构建的。然后我将此 .aar 导入到 Android Studio 的 /libs 下。此依赖项的 build.gradle 文件如下所示:

repositories{
    flatDir{
        dirs 'libs'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'com.google.android.gms:play-services:7.0.0'
    compile 'com.android.support:multidex:+'
    compile(name: 'customApi-debug', ext:'aar')
}

由于库相当大,我设置了 multiDexEnabled = true。 Android Studio 找到该库并自动完成工作。构建也正常,但运行应用程序会出现以下错误:

java.lang.NoClassDefFoundError: com.companyx.android.api.ui.vision.metaio.MetaIoView
            at com.companyx.android.api.ui.vision.metaio.MetaIoView$$InjectAdapter.<init>(MetaIoView$$InjectAdapter.java:29)

我分别解压缩并反汇编了 .aar 和 dex 文件,并验证了它所抱怨的类确实存在。我已经尝试过现有的方法来处理这个问题,但没有一个有效。

还有其他人经历过这个吗?提前致谢。


我遇到了同样的问题。修复方法首先是将 AAR 文件部署到本地 Maven(我在https://github.com/dcendents/android-maven-gradle-plugin https://github.com/dcendents/android-maven-gradle-plugin)。然后我参考了本地专家,如下所述https://stackoverflow.com/a/23045791/2563009 https://stackoverflow.com/a/23045791/2563009。最终我使用传递选项声明了依赖项,如下所示:

dependencies {
  compile('com.myapp.awesomelib:awesomelib:0.0.1@aar') {
    transitive = true
  }
}

那么错误就会消失。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 .aar NoClassDefFoundError 但类存在并且已 Dexed 的相关文章

随机推荐

  • 导出不带前缀变量的 conda 环境,该变量显示可执行文件的本地路径

    为了在我的团队中进行可重复的改进 我在新创建的存储库中导出了一个 conda 环境文件 该文件正在运行conda env export gt environment yml 我的想法是让我的同事下载存储库并运行conda env creat
  • Oracle Data Provider 到 CLR 类型的映射

    在哪里可以找到 ODP 到 CLR 类型映射的列表 在 Oracle 数据库上 NUMBER 9 0 类型在 NET 应用程序中作为 MS Oracle 驱动程序中的 System Decimal 出现 但在 ODP 驱动程序中作为 Sys
  • Struts2 jquery插件用整个页面的HTML响应ajax请求

    我正在尝试在某些表单上使用 Struts2 jquery 插件进行 ajax 请求 但我在页面响应方面遇到问题 struts 操作已验证并正确执行 但是当 jquery 获取响应时 它将响应设置为整个页面的 HTML 它将响应放在正确的位置
  • 在 MongoDB 中将一天增加到日期

    如何在文档中将日期增加 7 天 而无需手动设置日期 Collection Data id ObjectId 5e302f83edd1fd00125abbf9 dateTransferred 2020 01 26T00 00 00 000 0
  • Jersey 无法将 json 请求映射到类

    我能够使用 Json 输出运行 Jersey 并且能够使用 Json 映射获取 GET 请求 没有任何问题 我还有一些 JSON 方法 它们是 POST 方法 它们映射到 Java 类 就像这个方法一样 POST Consumes Medi
  • 如何重建已下载的编辑过的 Raku 模块?

    我已经安装了 Time Duration 但它的大部分测试都失败了 我希望能够通过我的编辑从本地存储的模块重建模块 我编辑了包含该模块的文件 对应于 Duration pm6 perl6 sources D00C101A0157E3EAC4
  • Google PubSub - 计算主题中的消息数

    我查看了 Google 的 PubSub 文档 并尝试查看 Google Cloud Monitoring 但找不到任何方法来确定我的主题中的队列大小 由于我计划使用 PubSub 进行分析 因此监控队列计数对我来说很重要 这样我就可以增加
  • 修改实体模型后每个属性的“X 和 X 之间存在歧义”[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 在对实体模型中的每个属性进行小更改并尝试重新编译后 我都会收到 XYZ EntityX PropertyX 和 XYZ
  • JavaScript“Console”对象及其所有 API 的源代码

    JavaScript Console 对象 当前所有现代浏览器中都存在的 JavaScript 调试控制台 的实现细节是否开源 我在哪里可以找到该 Console 对象本身的源代码 包括其所有 API 函数 例如 console log c
  • Chrome 打包应用中的聚合物

    Google 和 Polymer 发布的新 Material Design 是轻松创建此类设计的最佳库之一 如果不是唯一的话 是否有人使用该库开发 Chrome 打包应用程序以获得其提供的 Material Design 外观 目前 它受到
  • 没有 ToolBarManager 的黑莓标签栏

    我想为我的黑莓项目创建一个具有精确外观和感觉的工具栏 任何帮助是极大的赞赏 请注意 我无法使用 ToolBarManager 我的项目应该支持OS 5 0之后的所有设备 Thanks 这是如何在黑莓中创建选项卡的示例代码 之后我一共看了 3
  • 如何测试具有外部依赖项的 Webpack 包?

    总的来说 我对 Webpacker 和 Rails 还很陌生 我最近开始使用 Webpacker 来捆绑 React 组件 由于应用程序的一部分仍然使用资产管道 因此一些依赖项仍然存储在vendor assets javascript 并可
  • 在实现表单关闭的 WPF MVVM 模式时获取“仅在创建窗口并显示为对话框后才能设置 DialogResult”

    我正在尝试实施this https stackoverflow com a 3329467 713683WPF 表单关闭的 MVVM 模式也在此进行了解释blog http blog excastle com 2010 07 25 mvvm
  • 我可以使用 JOOQ 作为 SQL 解析器吗?

    我正在尝试解析 Java 中的 SELECT 语句 我熟悉 JOOQ 并希望使用它 我知道它并没有明确设计为 SQL 解析器 实际上它的功能远不止于此 因此我认为可能有一种方法可以使用其内部解析器来解析 SELECT 查询 我看到了一些有关
  • 将旧的 mysql 与 PDO 混合

    我正在编写一个使用一些遗留代码的应用程序 较新的代码使用 PDO 而较旧的代码使用原始 mysql 库 第一个代码中的事务中输入了大量数据 以便我可以在错误时回滚 但是在某些时候会调用遗留代码并需要查看相同的数据 除非连接是共享的 否则旧代
  • 快速排序递归深度 O(n) 的堆栈空间不会导致堆栈溢出?

    在最坏的情况下 快速排序递归深度需要 O n 的堆栈空间 为什么在最坏的情况下它不会导致大集合的堆栈溢出 顺序颠倒 如果在枢轴的两侧进行递归 那么在最坏的情况下 它确实会导致足够大的数据的堆栈溢出 这就是为什么没有人在生产代码中使用简单的快
  • 将图像序列化为字符串

    论坛里的好朋友 我一直在搜索很多 但我找不到如何序列化图像并将其传递给 android 中的字符串 可能并非如此 如果有人知道并想告诉我 我将非常感激 虽然java awt Image类不是 未实现 java io Serializable
  • C# 检查复选框状态的更清晰方法?

    我有以下代码 它将布尔值列表作为参数 然后通过单独验证列表来设置每个检查列表的检查状态 有没有更有效的方法来编写以下代码 例如 通过使用循环 public PointCtrlRowSelectionForm List
  • 将函数应用于 R 中的数据帧列表

    我需要有关如何以迭代方式管理列表的帮助 我有以下清单list它由多个具有相同列但行数不同的数据框组成 例子 1 id InpatientDays ERVisits OfficeVisits Narcotics 1 a 0 0 18 1 2
  • 使用 .aar NoClassDefFoundError 但类存在并且已 Dexed

    我有几个项目是为了创建 aar 而构建的 然后我将此 aar 导入到 Android Studio 的 libs 下 此依赖项的 build gradle 文件如下所示 repositories flatDir dirs libs depe