问题标签 [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.
android - Android MultiDex - A/libc(28851):致命信号 11 (SIGSEGV),线程 29117 (pool-16-thread-)
我在我的应用程序中收到此错误,但仅在某些设备上。到目前为止,仅报告了几起事故。我最近启用了 multiDex 支持,从那以后它在一些棒棒糖之前的设备上崩溃了。
logcat 中没有给出其他信息。我在 SO 上看到了其他一些帖子,但它们有所不同,不适用于我的情况。我想这与内存使用有关?
android - Android Proguard - 构建失败并显示 proguard-android-optimize.txt
我正在尝试构建一个启用 proguard 的项目。如果我使用“proguard-android.txt”作为默认规则文件但由于 proguard-android-optimize.txt 失败,它可以正常工作,这是可以理解的,但我只是不明白我得到的错误:
然后有一个很长的描述,它超出了正文字符的 SO 限制。
这是我的 gradle 文件-
这是 proguard-rules.pro 文件 -
编辑 -错误的相关部分。描述的其余部分是警告
然后最后 -
android - 无法更改构建工具版本来编译 Android 应用程序
我想使用构建工具 21.1+ 编译一个 android 应用程序,因为我需要使用 multidex 支持。我从 SDK 管理器安装了构建工具 21.1.2。之后,我更改了所有 build.gradle 文件以包含 buildToolsVersion:
由于该应用程序依赖于其他几个项目,因此有几个 build.gradle 文件,具有不同的版本和参数。
此外,是否进行了 multidex 所需的其他更改。在需要 multidex 的应用程序中,我像这样修改了 build.gradle:
当然也将清单修改为。
问题是,尽管进行了所有 build.gradle 修改,该项目似乎正在使用 19.1.0 构建工具进行编译,因为当我删除它们时,我收到了这个错误:
当我安装构建工具 19 时,项目在编译过程中走得更远,但它会得到各种不同的奇怪错误,具体取决于编译参数。如果我设置:
项目在 dex 过程中编译失败,出现奇怪的错误。但是如果我将两者都设置为 v 21,则项目无法编译,因为它说它需要构建工具 21.0+,我在 build.gradle 中明确要求。
由于该项目最初是这样开发的,因此我使用的是 gradle 包装器(gradlew),而不是 Android Studio 的内置 gradle。
请注意,以下内容与错误的技术部分无关,但可能有助于理解它的上下文:我正在尝试编译 ros-android (android_core) 库,但将所有内容更新到最新版本:gradle 2.3 , android 插件 1.1.0, 构建工具 21.1.2, Google APIs 21, android studio 1.1.0。这个想法是能够结合使用最新的 Google API 和 ros-android 库。
android - 应用程序无法运行 Robolectric 单元测试
我有一个使用这么多库的 Android 应用程序,我现在需要使用 MultiDex-ing。不幸的是,当我引入多索引时,我现有的 Robolectric 单元测试不再运行甚至启动。在我添加多 dexing 之前,它们运行得非常好。
参考github上的原bug帖子
https://github.com/robolectric/robolectric/issues/1328
并提出解决方案
https://github.com/robolectric/robolectric/pull/1457
我仍然无法让我的单元测试运行。
以下是我的 build.gradle 文件版本 1 的片段,我在其中尝试获取最新的 robolectric 快照以及可以在我的代码中使用的 ShadowMultiDex.java。
我还创建了一个包含内容的 org.robolectric.Config.properties 文件
有了以上内容,我开始进入我的测试类,并将 ShadowMultiDex 包含在我的小测试中。
当我运行单元测试时,我仍然会得到一个 NullPointerException 来设置应用程序及其元数据。我正在寻找的是看看其他人做了什么来真正解决这个问题并让它运行。
android - SDK 21 以下的 NoClassDefFoundError
我刚刚在我的应用程序中遇到了一个尴尬的错误。
在我的 Nexus 5/7 上,运行 android 5.0.1/5.0.2,一切正常。但是,如果我尝试在具有早期版本(测试 4.4.4 和 4.3)的设备上运行完全相同的代码,我会收到以下错误:
我已经尝试将 support.v7 库添加为 jar,但没有区别。但由于它适用于 Lollipop 设备,这无论如何都没有意义。
会不会是关于 Dalvik/Art 变化的问题?或者我不得不使用 com.android.support:multidex:1.0.0 的事实,因为它是一个相当大的应用程序。
更新:我尝试删除一些依赖项以低于 65k 方法限制。之后,该应用程序在 4.4.4 和 4.3 设备上运行。我为启用 multidex 支持所做的只是设置
在 defaultConfig 部分并添加
下面在我的 build.gradle 的依赖项部分。
知道为什么这会在较旧的 android 版本上导致这些问题吗?
android - 方法限制 65k - Google Play 服务和 ADT
我已经看到了一些关于它的问题(问题 1并且由于我不能在 eclipse 中使用 gradle,所以我不知道另一种选择)但我不知道如何解决它。
所以,事情是这样的:我更新了我的 ADT 和我的 Play Services 以实现获取用户位置的新方法(我正在使用 ADT)。自从我这样做以来,我面临的问题是我的项目中有超过 65k 的方法。我尝试按照Android 开发人员的建议更改 proguard ,但没有任何反应。所以,也许我的 Android 应用程序中没有启用 proguard!我试图在这里查看它,但我意识到我的任何项目中都没有 proguard.cfg 文件!
我该如何解决?我只是在 Play Services(GCM 和 Location)中使用了一些东西。
java - java.lang.IllegalAccessError:预验证类中的类引用解析为使用 ormlite 的意外实现
使用时出现此错误
如果我删除
我不会有错误
使用 multidex 应用程序后我开始收到错误
android - findViewById 中的奇怪 ClassCastException
我观察到在线抛出一个奇怪的异常:
异常如下所示:
我无法重现它,但它有时会根据日志发生。
该应用程序使用带有 gradle 的官方 multidex 构建。
android - 在 Android Kitkat 上运行独立的多 dex jar
我一直在尝试在 android 设备上将 Java 应用程序作为独立的 jars(而不是 apk)运行。一开始一切都很顺利:我使用 Android SDK 中的 dex 编译器,将 dex 文件打包到 jar 中,将其推送到设备并使用shell 脚本(类似于链接中的示例)来运行它。
当我包含更多库并达到 65K dex 函数限制时,我在 dex 编译器中使用了 --multi-dex 标志。编译成功,我还能够在 Lollipop 设备上运行我的代码。但是,在 Kitkat 上运行完全相同的 jar 会得到以下运行时异常:
当我尝试运行与 apk 相同的代码时,我遇到了完全相同的问题,并通过在 Android 清单中添加一行来解决它:
这在当前情况下显然是不可能的,因为我没有清单文件。
如何仍然为我的独立 jar 启用 multidex 支持?我应该在编译中添加库吗?我应该以不同的方式运行 jar 吗?
谢谢。
java - Android中的Multidex问题
我不知道如何解决 Android 中的 Multidex 问题。我的应用程序集成了很多 SDK,因此应用程序超过了 65k Over Method 限制。我浏览了很多教程和博客。我得到了很多解决方案。其中一个在下面提到,作为我的 gradle 的一部分。请有人提供一个好的和有效的解决方案。