问题标签 [dex]

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 回答
219 浏览

android - 如何使用 dedexer 解释这个反汇编的行?

以下是在 android 市场应用程序上使用 dedexer 反汇编的 snipcode,在 中invoke-virtual我不明白原始 Java 代码是什么:

invoke-virtual {v0},[Lcom/google/android/providers/AbstractGDataSyncAdapter$ClientDiffType;/clone ; clone()Ljava/lang/Object;

[应该是一个数组,那么它是在类型数组中的元素上调用方法clonecom/google/android/providers/AbstractGDataSyncAdapter$ClientDiffType?那为什么;在类名和方法名之间有clone呢?dedexer 本身的错误?

0 投票
2 回答
3961 浏览

android - 从命令行编译Android项目很慢

我正在从 OSX 上的命令行编译我的(相当简单,只有 5 个文件,几百个 LOC)应用程序:

ant debug

有用。但它工作缓慢:

BUILD SUCCESSFUL Total time:

26 seconds

这是为什么?即使我只更改一个 java 文件中的一行,也需要这么多时间。大部分时间都花在了dex阶段(大约 20 秒),这是 AFAIK 创建 Dalvik 字节码。但是我的朋友也在使用 Eclipse 在 Windows 上从事同一个项目,他说在他的机器上编译只需要一两秒钟。我能做些什么来加快这个过程吗?

0 投票
1 回答
934 浏览

android - Android - dx 故障处理 - 不明智或错误地使用核心类 2012,Android 4 更新

当我在尝试构建我的应用程序时收到“不明智或错误地使用核心类”错误时,我搜索了 Stackoverflow,并按照一些建议,使用 ant 和 jarjar 来构建应用程序。

ant 构建在 dx 步骤失败,错误报告如下。

我在网上搜索了有关如何修复“无法强制”错误的建议(见下文),但没有发现任何帮助。

请注意,ant 构建中的 jarjar 步骤似乎有效。当我检查 bin/repackagedclasses.jar 中的 java 目录的内容时,它们是空的,所有内容都转移到了等效的重命名目录 (/java)。

另请注意,我遵循的建议(使用 ant 和 jarjar)已有两年多的历史并适用于 android 2.x。有可能(可能?)使用 android 4 和相关基础设施,它们将无法工作,只是一个猜测。

最后一点。我在 sdk/platform-tools 中更改了 dx,如下所示:

无论是否进行上述更改,对 ant 构建或 Eclipse 构建都没有影响。

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 回答
1953 浏览

android - Android动态加载资源

我正在尝试使用DexClassLoader在我的应用程序中下载 JAR/APK。我想模块化我的应用程序,以便我可以下载用户可能会按需进行的 UI 流,而不是将它们全部一起发送到我的主应用程序中。

加载实际的类工作正常,我设法加载了一些 UI 组件,我可以将它们添加到我的主机活动中。

我的问题是,显然我无法访问或添加资源(字符串、可绘制对象、布局)到我下载的包中,因为它们没有随我的主机 APK 一起提供。是否可以为我的可下载 JAR/APK 动态加载资源?

0 投票
2 回答
4464 浏览

android - 是否可以从 sdCard 上的 jar 库动态加载 Activity 类并实际使用它?

我在 sdCard 上有 1 个 .jar 文件(我使用 dx 工具将通常的 .jar 编译为 dex .. 否则 android 会在运行时抱怨)

我想使用的课程实际上是一个活动,“使用”我的意思是充气!

A)我注意到,如果我像这样加载类,加载的类将作为包 parrent 的包 parrent 类(我在其中运行代码的包:示例:jar 库中类的真实包:“com .something" & my-app-package: "com.wonderfull" -> 加载的类在 "com.wonderfull.com.something" :) ) -> 重新测试:它保留原始包,就像在库中一样

B)在“最佳”情况下,我收到此错误:

无法实例化活动 ComponentInfo{com.appno2/com.appno1.futureLib.LibActivity}:java.lang.ClassNotFoundException:com.appno1.futureLib.LibActivity 在加载器 dalvik.system.PathClassLoader[/data/app/com.appno2-1 .apk]

C)在清单中,我已经像这样放置了 Activity (要动态加载的那个):

活动 android:name="com.appno1.futureLib.LibActivity" android:label="@string/app_name" > /activity>

所以我重复标题中的问题:是否可以从 sdCard 上的 jar 库动态加载 Activity 类并实际使用它?

如果是“你为什么要这个?” - 只是古玩!+ 作为一个概念:在用户输入有效许可证后立即下载应用程序的实际代码(以某种罐子的形式)的可能性

更新: - 这个想法适用于片段(意味着要导入的类是片段)

目前的结论: - 可能有:蹩脚的java类甚至android UI相关的外部.jar(例如在sdCard上,或从互联网下载..等)并在需要时动态加载它们。哦,是的:你不能以这种方式工作这些活动:( .. 可能甚至没有服务..

更多信息 #1:是否可以在运行时从 Android 应用程序动态加载库?

更多信息#2:http ://android-developers.blogspot.ro/2011/07/custom-class-loading-in-dalvik.html

关于URLClassLoader:这有效(不涉及 DalvikClassLoader - ClassNotFoundException && obviosly:仍然不能膨胀像这样加载的活动)

0 投票
5 回答
2036 浏览

android - Android的dex代码自动转换

我想转换/检测 Dex 文件。转换的目标包括测量代码覆盖率。请注意,源文件不可用。所以检测 Dex 是唯一的选择。

我想知道是否有任何现有的代码库可以作为示例来编写工具来实现我的目标。

我知道 Smali 项目和许多其他基于 Smali 的项目。但是,这些项目都不是我的目的的好例子。

我正在寻找自动转换 smali 代码或 dexlib 表示的代码,从中生成 smali。出于我的目的,后一个选项是首选,因为可以避免生成 smali 的开销。

0 投票
1 回答
1676 浏览

android - 转换为 Dalvik 格式失败:无法执行 dex:无法处理转换为巨型索引

在 Eclipse 中编译 Android 项目时遇到问题。我添加了 3 个我需要的外部 jar,现在我遇到了这个问题:

我遇到的唯一有任何解决方案的资源就是这个。不幸的是,将引用的行添加到 project.properties 并清理作为推荐的资源不起作用。如果其他人以前遇到过这个问题,你能告诉我如何解决它吗?

0 投票
1 回答
1025 浏览

assembly - (操作 dex 文件)如何反汇编(如 dexdump),修改(文本中的字节码),然后再次汇编为 dex

我想将“.dex”文件的字节码修改为文本格式,然后再将文本组装成dex文件。必须确保最终的“.apk”可用。

我想知道一些工具,而不是自己制作一个汇编器。

0 投票
1 回答
1218 浏览

bytecode - 混淆了 smali 代码和 dalvik 字节码规范以及 dex 文件中操作码的真实十六进制

我定义了一个名为DefineFields. 它有一个空的构造函数。当我编译它时,classes.dex文件中的十六进制代码显示如下:

之后我搜索字节码规范,我找到了

我阅读了规范。但我无法完全理解什么是35c. (我知道 c,x 在规范中有解释表。)我想知道的是如何解释 the和 中的10十六进制70100C050C

这些东西与规范操作码不匹配。