问题标签 [android-multidex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
12 回答
52637 浏览

android - 如何收缩代码 - dex 中的 65k 方法限制

我有一个相当大的 Android 应用程序,它依赖于许多库项目。Android 编译器对每个 .dex 文件有 65536 个方法的限制,我已经超过了这个数字。

当你达到方法限制时,基本上有两条路径可以选择(至少我知道)。

1)缩小你的代码

2)构建多个dex文件(见this blog post

我查看了两者并试图找出导致我的方法计数如此之高的原因。Google Drive API 占据了 Guava 依赖项的最大部分,超过 12,000 个。Drive API v2 的库总数超过 23,000 个!

我想我的问题是,你认为我应该怎么做?我应该删除 Google Drive 集成作为我的应用程序的一项功能吗?有没有办法缩小 API(是的,我使用 proguard)?我应该走多 dex 路线(这看起来相当痛苦,尤其是处理第三方 API)?

0 投票
4 回答
29211 浏览

android - MultiDexApplication 无法识别

尝试在我的应用程序中使用 MultiDexApplication,但是当我尝试使用它扩展我的应用程序活动时,无法识别该类。

这是我的 build.gradle 文件:

你可以看到我在 21 日编译,使用最新的构建工具,以及最新的 google play 服务和支持库。

有没有人让这个工作?

0 投票
14 回答
245257 浏览

android - 如何使用新的 Android Multidex 支持库启用多索引

我想使用新的 Multidex 支持库来打破我的一个应用程序的方法限制。

借助 Android Lollipop,Google 引入了一个 multidex 支持库,可以轻松实现 multidex。

需要哪些步骤才能使用这个库并构建我的具有 multidex 支持的应用程序?

0 投票
3 回答
4202 浏览

android - Android Multidex 列出所有类

我想使用 ApplicationWrapepr 方法在我的应用程序中使用 multidex,如此处所述https://plus.google.com/104023661970539138053/posts/YTMf8ADTcFg

我使用了 --minimal-main-dex 选项以及这样的保留文件:

这导致在我的主 dex 文件中列出的类是可以的。我比使用使用以下代码的库来列出 dexfile 中的所有类,但只获取主“clesses.dex”的条目,而不是所有其他加载的 dex 文件的条目,因为新的 DexFile 只检查“classes.dex” :

目前的单一路径通过以下方式确定:

结果类似于 /data/../myapplicationname.apk

是否有另一种可能列出 dex 文件中的所有类?或者当前在 ClassLoaders 中的所有类?该库对项目至关重要,并在以后使用这种方法通过反射查找组件实现。

EDIT1: 如果发现classes2.dex文件位于:/data/data/com./code_cache/secondary-dexes/com.-1.apk.classes2.dex

但是,当使用带有此路径的 new DexFile() 时,IOEsxception 会抛出消息“无法打开 dexfile”。

0 投票
0 回答
1030 浏览

android - 错误:发现任务collectDebugMultiDexComponents的配置有问题

我已将 Android Studio 更新到 0.9,将构建工具更新到 21.1.0,并将 gradle 更新到 0.14,因为我想使用新的 multiDexEnabled true 功能。目前我正在使用这种方法 https://github.com/casidiablo/multidex管理 multidex ,一切正常,但 multiDexEnabled 功能似乎更好。

但是使用 gradle 0.14 我遇到了这个错误:uses-sdk 元素不能有一个“工具:节点”属性,我使用@Medo 发布的解决方案“解决”了该属性。

但是如果我使用这种方法 multiDexEnabled 将不起作用,我会收到这个错误:

错误:发现任务 ':participactclient:collectDebugMultiDexComponents' 的配置有问题。

为属性“清单”指定的文件“/Users/danielecampogiani/Developing/Android/Android Studio/Participact Client/participactclient/build/intermediates/manifests/full/debug/AndroidManifest.xml”不存在。

如何解决这个问题?

0 投票
1 回答
2123 浏览

android - 使用 multiDexEnabled 而不使用 Gradle,而是使用 Eclipse 构建过程

由于最新的 SDK 版本,创建具有多个 dex 文件( https://developer.android.com/tools/building/multidex.html )的应用程序要简单得多,我的问题是,这个新功能也可以在我使用时使用在构建过程中不是使用 Gradle,而是使用“旧”的 Eclipse 构建链?

Gradle 构建文件中的“multiDexEnabled true”还必须以其他方式传输到 Android 编译器吗?

0 投票
14 回答
70256 浏览

android - 在路径上找不到类“android.support.multidex.MultiDexApplication”:DexPathList

我正在我的应用程序上尝试新的MultiDex 支持,到目前为止,我已经成功地编译了我的应用程序,但是在运行它时,我得到了以下异常:

这是我的毕业文件:

还有我的 AndroidManifest.xml:

我不明白问题是什么。我想我正在根据文档做所有事情。还有什么我想念的吗?我确保从 SDK 管理器安装了最新的支持库和存储库。

0 投票
1 回答
545 浏览

android - Android Studio multi-dex gradle 在 mac 上无法识别 java

我正在尝试在我的 Mac 上使用 multi-dex 编译一个 gradle 项目(插件 0.14.0),并收到此错误:

有什么建议么?当我从终端执行 ./gradlew 时,它可以工作。

0 投票
1 回答
2455 浏览

android - multiDexEnabled 不起作用

我有一个相当大的android项目。该项目仍然可以编译,但是当我尝试编译测试时出现错误:

好的,我找到了 multiDexEnabled 属性并添加了

在里面

我还扩展了我的应用程序

但这并没有改变任何东西,我仍然得到

它甚至明确地向我展示了没有 --multi-dex 参数的 dx 命令

0 投票
6 回答
15886 浏览

android - 找不到 Gradle DSL 方法:'multiDexEnabled()'

我遵循了https://developer.android.com/tools/building/multidex.html上的 multidex 指南

但我收到此错误Gradle DSL method not found : 'multiDexEnabled()'。我已经更新了 Android 内置工具、Android 支持存储库和库。这是我的 gradle.build 文件。我在这里做错了吗?

构建.gradle