问题标签 [dalvik]

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 投票
1 回答
699 浏览

android - Dalvik 文件格式 (*.dx) 是否支持比 Java .class 文件更多的指令?

Dalvik VM 是否支持(就字节码而言)由于 .class 文件没有而目前未使用的东西?

例如,如果人们为他们的功能语言 XYZ 编写自己的 Source-to-DX 转换器,他们是否能够实现例如完整的尾调用,尽管 .class 文件仅在某些情况下支持尾调用?

0 投票
71 回答
488128 浏览

android - 外部 JAR 上的“转换为 Dalvik 格式失败,错误 1”

在 Eclipse 中的 Android 应用程序中,我收到以下错误。

意外的顶级异常:
java.lang.IllegalArgumentException:已添加:Lorg/xmlpull/v1/XmlPullParser;
....
转换为 Dalvik 格式失败,错误 1

仅当我将特定的外部 JAR 文件添加到我的项目时才会出现此错误。我为可能的解决方案搜索了很长时间,但没有一个可能的解决方案有效。

我什至尝试更改为 Android 1.6 而不是 1.5(我使用的当前版本)。

0 投票
14 回答
68997 浏览

java - Android:转换为 Dalvik 格式失败:无法执行 dex:null

我正在尝试在 Android 上使用SmugFig SmugMug API。我想它是为 J2SE 设计的,所以我不确定它甚至可以在 Android 上运行,但我认为它值得尝试,而不是尝试创建自己的 API。

但是,当我加载项目时,出现以下错误:

它没有说明它在哪个包上失败,只是“Android 打包问题”,但在我添加 SmugFig 之前它没有这样做,它是依赖 JARS 到构建路径。

我应该去哪里看?或者这主要是我认为它不适用于那些库?

0 投票
3 回答
23465 浏览

jvm - 为什么 JVM 是基于栈的,而 Dalvik VM 是基于寄存器的?

我很好奇,为什么 Sun 决定让 JVM 堆栈为基础,而 Google 决定让 DalvikVM 以寄存器为基础?

我想JVM不能真正假设目标平台上有一定数量的寄存器可用,因为它应该是平台独立的。因此,它只是将寄存器分配等推迟到 JIT 编译器。(如我错了请纠正我。)

所以安卓的人想,“嘿,那太低效了,让我们马上去一个基于寄存器的虚拟机......”?但是等等,有多个不同的 android 设备,Dalvik 的目标寄存器是多少?Dalvik 操作码是否针对一定数量的寄存器进行了硬编码?

市场上所有当前的 Android 设备是否具有大致相同数量的寄存器?或者,在 dex 加载期间是否执行了寄存器重新分配?这一切如何结合在一起?

0 投票
1 回答
174 浏览

android - WITH_OBJECT_HEADERS 启用了 Dalvik 的 GC?

据我所知,Dalvik VM 默认不支持分代 GC。

但是,我发现“ WITH_OBJECT_HEADERS”编译标志可能与HeapInternal.h文件中的分代 GC 有关。

有没有人尝试在启用此选项的情况下构建 Dalvik?你知道 Dalvik 对分代 GC 的支持吗?

0 投票
1 回答
859 浏览

java - 在 Android 上使用 mockito 加速编译

我目前正在使用 Eclipse 开发一个 android 应用程序:

  • 该应用程序的一个项目
  • 一个测试项目(Instrumentation 和 Pojo 测试)

在测试项目中,我正在导入 mockito 库以进行标准 POJO 测试。但是,当我导入库时,eclipse 中的编译时间从 1 秒猛增到 30 秒左右。原因似乎是每次都转换整个库。所以基本上,每次我想要测试的修改,我都必须等待 30 秒。

到目前为止,我发现的唯一解决方法是:

  • 禁用“自动构建”
  • 创建一个仅包含 pojo 测试的项目,并仅将 mockito 放在那里。
  • 使用另一个编译速度更快的库(例如easymock)

还有什么建议吗?

0 投票
1 回答
37204 浏览

java - 如何在 android/dalvik 上动态加载 Java 类?

我想知道是否以及如何在 dalvik 中动态加载 dex 或类文件,我编写的一些快速'n'dirty 测试函数是这样的:

而 Foo 接口是这个

f.dex 包含该接口的一些 dx'ed 实现:

上面的测试驱动程序在 defineClass() 处抛出,它不起作用,我调查了 dalvik 代码并发现了这一点:

http://www.google.com/codesearch/p?hl=en#atE6BTe41-M/vm/Jni.c&q=Jni.c ...

所以我想知道是否有人可以启发我,这是否可能以其他方式或不应该是可能的。如果不可能,任何人都可以提供为什么这是不可能的原因吗?

0 投票
1 回答
986 浏览

android - 在 Android 上加载“dexed”JAR 时解决错误

我正在尝试在 Android 上为 Felix 制作一个捆绑包,它可能会定期拍照。所有代码都编译得很好,Felix 可以解决它,但是当我尝试启动它时,我得到一个异常(java.lang.VerifyError)和 logcat 中的这个跟踪:

CameraHandler 类打开一个 Camera 对象,并实现 PictureCallback 和 AutoFocusCallback。

.jar 文件已通过简单的 'dx --dex --output=classes.dex ... && aapt add ... classes.dex' 被“dexed”。

我不知道为什么会出现这个错误,所以如果有人有解决方案......

谢谢

0 投票
6 回答
17080 浏览

java - ClassNotFoundException Android

所以我今天在处理我的 Android 程序时遇到了一个问题。我有一个类可以将 XML 字符串转换为 Java 对象(第三方),它在常规 Java 项目中运行良好,但在 Android 上我得到了这个奇怪的错误:

出于显而易见的原因,我隐藏了我的应用程序名称和我的包,但我想知道是否有人遇到过这样的问题。类在正确的包中,这是我添加的一个库。我之前引用的其他类在那里并且可以制作。ClassNotFoundException抛出a 是否还有其他原因?

谢谢,杰克

0 投票
2 回答
2204 浏览

android - Linux X86 或 Mac 上的 Dalvik JIT 编译器构建

正如我从Google IO 2010 session中听到的,Dalvik JIT 编译器只支持 ARM 处理器。这是否意味着我自己在 Linux X86 或 Mac OS X 上构建的 Android 源代码不支持 JIT 编译器?

我应该使用带有 ARM 处理器的目标板来测试 Dalvik JIT 编译器吗?

谢谢!