问题标签 [dx]

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 投票
2 回答
7768 浏览

android - Android dx 使用情况

我有一个从 android 应用程序创建的 jar 文件,因为我在创建时将其标记为 Eclipse 中的“Is library”。现在 DexClassLoader 无法加载此文件,因为它没有标记为 classes.dex 的条目。这看起来像一个标准的罐子。如何将这样的 jar 转换为 DexClassLoader 可以加载的带有 dx 的 dexed jar?任何帮助表示赞赏!

0 投票
1 回答
176 浏览

android - 在编译时从 Android Dex 文件中去除 AWT 引用

我在我的Android应用程序中收到警告,说我的bytecode makes illegal references to java.awt,在某些情况下是runtime seems to replace invalid opcodes.

我可以做些什么来告诉DX工具更早地清除或替换这些引用(比如在编译时),以便生成的 dex 文件不再有这些引用?

0 投票
1 回答
550 浏览

android - Dx 处理外部库需要很长时间

我的 Android 应用程序使用了大量非平凡的外部库。这些库都是用 Java 编写的,只是简单地添加到构建路径中。

从 Eclipse 中启动应用程序需要很长时间,大约 5 分钟。这非常令人沮丧!

我启用了详细的 android 构建输出。这表明构建过程正在迭代*.class外部库中的所有文件。我得到了数百条这样的行:

(这只是一个小样本,我又得到了数百个*.class

我不太确定 Dx 工具在这里做什么,但它肯定很烦人!

更糟糕的是,每次启动都会重复这个过程,没有缓存,没有任何东西......

可能的想法:

  • 这个地方有缓存吗?在哪里?也许它是只读的,因此不会持续存在?
  • 我可以完全禁用我的开发版本的“DX 处理”步骤吗?

任何可能的解决方案或至少想法?这真的让我发疯;-)

谢谢!

0 投票
1 回答
1684 浏览

android - 库项目 Dx UNEXPECTED TOP-LEVEL EXCEPTION 或 ActivityNotFoundException

我有使用它的库项目和常规 android 项目。

图书馆项目:

src 文件夹包com.myproject

AndroidManifest.xml

独立项目(是一个Android项目,使用库项目):

src 文件夹包com.myproject

AndroidManifest.xml

我想要达到的目标:

Android 项目中的 ChildActivity 应覆盖库项目中的 ChildActivity。

编译失败:

如果我将独立项目中的 src 文件夹更改为 com.myproject.standalone 并将清单条目更改为

我有例外:

0 投票
1 回答
1398 浏览

android - 将 jar 添加到构建路径后的 NoClassDefFoundError

我正在 Eclipse 中开发一个 android 项目。我正在使用一些已添加到名为 lib 的文件夹中的 3rd 方 jar,并且已将所有 Jars 添加到构建路径中。我正在使用大约 44 个罐子。运行应用程序时出现 NoClassDefFoundError。为什么即使在将它添加到我的 buid 路径后我也会遇到这个问题?我真的很困惑,我将非常感谢一些帮助!

编辑我尝试在一个普通的java项目中使用相同的类文件,但没有出现错误,但它似乎不适用于android。我需要使用 dx 工具吗?

编辑我已将文件夹的名称更改为 libs,但是当我尝试运行我的应用程序时仍然出现某种错误,这是我在控制台中得到的:

谢谢

0 投票
1 回答
196 浏览

android - 使用 ruboto 的“rake”命令返回中止和权限被拒绝

我最近决定冒险使用 ruboto 进行 android 应用程序开发。我安装了带有所有必要开发工具的 Android SDK,以及 jruby、javac、ant 和 ruboto。但是,当我调用“rake”(ruby make)命令时,出现以下错误:

等等...似乎问题出在我的android平台工具中的dx文件...我想知道是否有人遇到过类似的问题以及我将如何寻找解决方案以便我可以运行“rake”并生成一个 .apk 文件。

0 投票
3 回答
5272 浏览

java - Android javac和dx - 故障处理,类名和路径不匹配

我正在使用 SpartacusRex 的终端 IDE 和另一个应用程序 DroidEdit 在 Android 上构建和运行 java 应用程序。一个简单的单文件 Hello World 可以完美地构建和运行,但是当我引入包时,我无法将类文件正确地 dex 到 jar 文件中:

从我的项目目录:
javac src/mypack/*. j​​ava
这编译成功
dx --dex --output=Test.jar src
这给了我以下警告

故障处理:
类名(mypack/Main)与路径(Main.class)不匹配
......在解析Main.class时
......在处理Main.class时

所有路径和包名称都是正确的。Main.java 位于名为“mypack”的文件夹中,并且有一个包语句“package mypack;”。
我究竟做错了什么 ?此外,使用 --no-strict 会删除警告,但输出的 jar 文件未正确构建且无法运行。

任何帮助表示赞赏。谢谢 :)

0 投票
8 回答
24248 浏览

android - Android:我的应用程序太大并给出“无法执行 dex:方法 ID 不在 [0, 0xffff]:65536”?

我正在尝试将我的应用程序与 Box、Dropbox 和 Google Drive 集成。所有这 3 项服务都需要许多 3rd 方 jar。此外,我的应用程序已经需要一些 3rd 方 jar。现在,当我尝试从 eclipse 运行我的应用程序时,出现以下错误:

无法执行 dex:方法 ID 不在 [0, 0xffff] 中:65536 转换为 Dalvik 格式失败:无法执行 dex:方法 ID 不在 [0, 0xffff] 中:65536

似乎发生此错误是因为我的应用程序有太多方法。我相当肯定这些方法中的大部分来自第 3 方 jar,因此尝试通过简化我的代码来解决这个问题是不现实的。我在网上找到了这两个建议。

  1. 添加dex.force.jumbo=true到 project.properties(并使用 adt 版本 21)。我这样做了,但仍然得到错误。

  2. 使用多个 dex 文件,如下所述:http ://android-developers.blogspot.co.il/2011/07/custom-class-loading-in-dalvik.html 。这似乎可能是唯一的选择,但我不明白它如何适用于我的情况。问题是像 Drive 这样的服务有太多的依赖关系。在引用其依赖项时,此解决方案是否不需要我修改 Drive 源以使用变形?(这显然不是一种选择)。

  3. 使用 proguard 缩小删除未使用的代码/方法。使用 proguard 导出我的应用程序确实有效,并且文档服务集成在 >4.0 设备上按预期工作。但是,在 2.3 设备上进行测试时会引发 classnotfound 错误。

所以,我希望对这个问题有一些建议。选项 2 是我的情况的解决方案吗?我应该考虑另一种解决方案吗?

0 投票
2 回答
814 浏览

java - java dx 实用程序:意外的顶级错误 java.lang.ExceptionInInitializerError

我正在尝试转换一个普通的 Java 应用程序库以在 Android 上使用。该库从 Java 1.1 开始,一直在维护、改进等,并且在其他平台上提供服务,因此不太可能涉及源代码。

通常,由于部署的细节,这个库不会封装在一个 jar 中,而只是保存在 CLASSPATH 发挥其魔力的树中。但是,为了将它放在 Android 上,创建了一个 jar。一切顺利 - 没有警告或错误。

由于将有一些新的开发 - 因此调试 - 通过 ProGuard 进行处理的步骤被跳过 - 时间将在稍后到来。

错误出现在下一步,运行 dx 将其转换为与 Android 一起使用。处理继续进行,直到此处描述的致命错误。(有一个小警告。)

错误飞溅:

开发环境是Terminal-IDE。(谷歌代码网站在这里。

我正在运行 Terminal-IDE v 2.02 - 最新的。我的安卓版本是:

编辑 - 新信息

考虑到终端 IDE 环境中缺少某些东西,我开始尝试在运行 Eclipse 的 Windows 7 机器上运行 dx。Eclipse以某种方式运行 DX,因为它将代码从普通的 .jar 转换为实际作为 Android 应用程序的一部分运行的东西。但是,我无法让 dx 从命令行运行 - 它抱怨找不到源输入文件!(有什么线索吗?)

同时,在某人的建议下,我开始在 Terminal-IDE 环境中进行整个构建。这意味着为了简化场景而进行一些黑客攻击,而且由于找不到 java.RMI 一直失败,所以我将这些部分注释掉了——我想我可以指向一个 Android-Ready RMI 库吗?...继续,一切正常,直到我再次到达 DX 并出现了一个非常相似的错误,如上所述:

0 投票
1 回答
1507 浏览

java - dx.bat 上的错误类文件魔术

我需要从命令行构建我的 android 应用程序(我正在使用 Java7 编译代码),但是当我尝试创建 dex 文件时出现以下错误

这就是我调用 dx.bat 的方式

我已经看到了类似的问题(使用 dx.bat 时的错误类文件魔术、使用 ADK14Dx 错误类文件魔术(cafebabe)或版本(0033.0000)

但是在这些问题中给出的唯一解决方案是使用java6编译我们的代码 因为我在我的项目中使用 ActionbarSherlock,所以我必须使用Java7,我想知道是否有办法从类创建 dex 文件java7创建的文件

毕竟 IntelliJ 已经在这样做了!