问题标签 [dexopt]
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 - LinearAlloc 超出容量 (5242880), last=1092 在我的三星平板设备上安装时出错
我不断得到,这个错误logcat
在控制台时
我试过了,清理项目,重启设备,杀死adb并启动服务器,
我发现要检查 WipeUserData,但是如何为 realdevice 擦除用户数据?
如何解决此问题并在三星平板电脑上安装我的 apk?
android - 什么是dexopt?(Android Shell 命令)
Android shell 命令 dexopt 有什么作用?
我在哪里可以找到手册?
android - 当 dex.force.jumbo=true 时,Dexopt 在一个非常大的 APK(乱序 method_idx)上失败
我有一个非常大的 Android 项目,其中包含多个大型 3rd 方 jar(作为 Android 库)。
我相信我已经达到了 Dex 的最大方法数限制(通过 eclipse 编译):
[2012-11-18 02:28:45 - 在文件中查找] Dx 处理 classes.dex ...
[2012-11-18 02:28:48 - Dex Loader] 无法执行 dex:无法将新索引 66774 合并到非巨型指令!
[2012-11-18 02:28:48 - 在文件中查找] 转换为 Dalvik 格式失败:无法执行 dex:无法将新索引 66774 合并到非巨型指令中!
因此,我利用 SDK 工具 21(平台工具 16)将我的主项目 project.properties 编辑为 set dex.force.jumbo=true
。
该标志允许我生成 APK。但我无法正确安装它(在物理和模拟器上)。似乎有一个 dex 优化器故障:
11-18 20:11:05.338: I/PackageManager(103): 运行 dexopt: com.mypackage.myapp
11-18 20:11:08.577: E/dalvikvm(868): 无序 method_idx: 0x2ae0 然后0x1
11-18 20:11:08.577: E/dalvikvm(868): 项目 1544 出现问题@偏移量 0xf7ae24
11-18 20:11:08.577: E/dalvikvm(868): 部分类型 2006 的交换失败
11-18 20 :11:08.577:E / dalvikvm(868):错误:字节交换+验证失败
11-18 20:11:08.597:E / dalvikvm(868):优化失败
11-18 20:11:08.597:W / installd( 39): DexInv: --- END '/data/app/com.mypackage.myapp-1.apk' --- status=0xff00, 进程失败
11-18 20:11:08.597: E/installd(39): dexopt 在“/data/dalvik-cache/data@app@com.mypackage.myapp-1.apk@classes.dex”上失败 res = 65280
11-18 20:11:08.697: W/PackageManager(103): 包无法安装在 /data/app/com.mypackage.myapp-1.apk
11-18 20:11:09.018: D/dalvikvm( 103): GC_EXPLICIT 释放 1698K, 13% 释放 17034K/19463K, 暂停 7ms+135ms
11-18 20:11:09.068: D/AndroidRuntime(780): 关闭 VM
我是否试图将dex.force.jumbo
标志用于它不打算用于的目的,或者这个错误是不可预测的?
如果是这样,是否有更好的策略来生成包含大量类/方法的项目?
android - 运行包含大量代码的应用程序
背景
似乎一些旧的 Android 操作系统(甚至可能是最新的)对每个应用程序可以容纳的代码量有限制。
正如我所发现的,限制是在一个名为 "LinearAlloc" 的缓冲区上。
在 2.2 或 2.3 上大约是 5-8 MB ,我认为在其他版本上是 16 或更多。
问题
如果您的代码太大(并且应用程序可以达到此状态),您将无法在旧设备上安装该应用程序,出现下一个错误(也报告在这里):
我发现了什么
一种解决方案是尽可能多地删除代码和库,但在一些大型项目中,这样的事情很难做到。
我发现下一个链接讨论了 Facebook 如何通过某种方式增加限制来解决这个问题:
- http://www.slashgear.com/how-facebook-fixed-its-gingerbread-dalvik-problem-04272478/
- http://arstechnica.com/business/2013/03/how-facebook-dug-deep-within-android-to-fix-its-mobile-app/
- https://www.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920
此外,谷歌发布了如何通过动态加载代码来解决它:
问题
脸书是怎么做到的?
是否也可以通过其他方式克服这一点?
是否有任何免费库可以增加/消除此缓冲区的限制?
对较新的 Android 版本有什么限制(如果有)?
其他大型应用程序(和游戏)如何处理这个问题?他们是否将代码放入 C/C++ 中?
动态加载 dex 文件会解决这个问题吗?
java - 无效名称:安装应用程序时出现“枚举常量初始化 $2”
在将 android 应用程序从 eclipse 安装到任何模拟器时,我开始收到错误:
我检查了我的枚举,但不确定可能是什么问题。在网上找不到足够相似的东西,所以在这里需要一些帮助:)
android - 包的 uid 不匹配:磁盘上的 10124,设置中的 10134
我的一个应用程序(包名称是 com.netbiscuits.kicker)在 Android 2.3.X 设备上遇到了一些问题。但是我无法安装我的 APK。我尝试直接从 eclipse(调试密钥库)安装它,并在 LogCat 中显示以下消息:
我还尝试直接从 Google Play 商店安装签名的 APK。失败并显示错误消息:“包文件无效”。
这个问题似乎只出现在少数 android 2.3.x 设备上,我完全不知道为什么。我不使用本机 NDK 代码,并且我已经检查了某个库是否在某处包含 apache commons,但我没有发现任何异常。
有什么建议吗?
android - 解决安装错误 dexopt
尽管有几篇关于 dexopt 错误的帖子,但它们都没有帮助。我突然开始收到 dexopt 错误:失败 [INSTALL_FAILED_DEXOPT]。我试过从我的手机上卸载该应用程序,但它没有帮助。我试图从 /data/data/ 中擦除应用程序数据,但它也没有帮助。但是,如果我在安装失败 dexopt 错误后第二次运行,我会收到一个失败 [INSTALL_FAILED_UID_CHANGED] 错误。再次擦除 /data/data 后,出现上述相同的错误序列。
我也尝试擦除临时文件夹,结果没有差异。我还尝试擦除我通过 android studio 安装的所有其他应用程序,但它仍然给我同样的错误。有任何想法吗?如果它有任何区别,我将安装在有根的 LG G2 上。
java - DexOpt:非法方法访问
我有一个基于位置的应用程序,它直到昨天都运行良好,但是当我在手机上运行它时,它的行为很奇怪。
下面是我的 logcat,它显示了我以前从未见过或听过的错误
注意:我昨天安装了 android 4.4.4 自定义 rom。是不是因为这个原因?
android - dexopt 和 dex2oat 的区别?
Google
正在从Dalvik
( ART
Android 运行时) 移动。
我试图了解,它将如何提高性能。
我找到的最好的解释是下图:
已更改的主要组件之一dexopt
是dex2oat
.
由于我对这些不太了解,任何人都可以解释其中的区别以及这将如何提高性能?
android - Android 平板电脑设备上的 Dexopt 错误
我尝试在我的平板电脑“Samsung GT-P1000”设备上运行我的 Android 项目,但是,每当我尝试运行该应用程序时,我都会得到这个按摩。
在 Logcat: pkg: /data/local/tmp/com.helloworld Failure [INSTALL_FAILED_DEXOPT] 我在这里看到了很多答案,但没有一个对我有用。我正在使用 Android Studio(而不是 Eclipse!),我已经从设备中删除了所有以前的应用程序,并多次清理/重建项目......
有什么帮助吗?
提前致谢。