问题标签 [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 投票
4 回答
3779 浏览

android - Android 构建适用于 Eclipse,但不适用于 Ant(“已添加”)

我的 Android 项目使用了几个标记为 Android 库的 git 子模块。这些子模块都有 ORMlite Android jar 的不同用途,因此 ORMlite jar 包含在它们的libs目录中。Eclipse 正确处理了这种情况:它在处理过程中包含一次 ORMlite jardex并生成一个有效的 .apk,但是当我通过运行构建时ant debug,我得到:

有没有办法让同一个 JAR 的多个副本散布在多个库中?是否有我可以更改的 Ant 构建设置以使其正常工作?

0 投票
2 回答
1832 浏览

python - 用python或其他语言生成dex文件

是否可以在运行时使用 python、perl 或类似语言生成 dalvik 字节码?

谢谢

0 投票
2 回答
2042 浏览

android - 链接到外部 JAR 库时使用 DexClassLoader 进行反射

我正在尝试为 Android 应用程序构建一个插件架构。我有一个主机应用程序,它将检查 apk“插件”文件的目录,将它们加载到 DexClassLoader 中,并调用一个方法来获取 DerivedLibraryObjects 数组。

我认为问题在于 DerivedLibraryObject 扩展了包含在外部 JAR 库中的基类。所以主机和插件都引用了这个 JAR。当我尝试获取 DerivedLibraryObjects 数组时,出现以下异常:

据我所知,这意味着插件中的对象与主机中的对象不匹配。但是,主机和插件应用程序都链接到同一个 jar 文件的副本。如果我返回一个简单地扩展 Object 的对象,那么代码可以正常工作,但是一旦我开始处理 DerivedLibraryObject,它就会抛出这个错误。

有没有人有什么建议?

0 投票
1 回答
1250 浏览

java - 是否可以在第三方 Android 应用程序中调试类?

我有一个 Android 库,我将它作为 jar 分发给第三方,第三方将其集成到他们的应用程序中。一个特定的客户遇到了我想调试的问题。是否可以将他们的应用程序重建为我可以调试的形式?

0 投票
1 回答
1623 浏览

android - ClassLoader 替换一个预加载的类?

一般问题: 是否可以使用 ClassLoader 替换预加载的(由系统,例如在 Android 的%android%/frameworks/base/preloaded-classes文件中找到)类?

具体: 在我的应用程序中创建 WebView 之前,我正在尝试使用 DexClassLoader 替换在 android.net.* 中找到的类。我可以得到一个 Class 对象,但是 getMethods() 例如给了我一个我期望在未修改/原始类实现中的数组。这是由于预加载类系统造成的吗?

基本设置和伪代码:

  1. 修改 android.net.* 类,添加一些测试方法/等。
  2. 编译并以 classes.dex 结束
  3. jar cf mytest.jar classes.dex
  4. 在 APK 资产中包含 mytest.jar
  5. 创建 DexClassLoader 并通过 loadClass() 获取 Class
  6. Class 对象上的 getMethods() 返回一个数组,我希望看到 #1 中没有修改

如果需要,我可以提供有关我正在使用的设置和代码的更多详细信息。

0 投票
2 回答
2063 浏览

android - Android二进制反汇编调试保护

假设我想保护 Android 二进制文件不被反汇编或字节码调试 - 市场上是否有适用于 java 和本机 C/C++ 代码的解决方案?

非常感谢斯滕

0 投票
2 回答
1213 浏览

android - 从命令行管理android项目

我在不使用 ant 的情况下从命令行管理和运行我的 android 应用程序,我按照以下步骤操作:

  • 生成 R.java
  • 将R.java 和所有.java文件编译src.class文件
  • dex使用以下命令将一组类文件组装成文件
    dx --dex --verbose --output=./bin/classes.dex ./bin

.class文件在 bin 目录中。

但我在这些步骤中遇到以下错误:

因此,我无法创建Classes.dex文件。

有人可以为此提出解决方案吗?

[仅通过命令行不使用 eclipse 和 ant]

0 投票
1 回答
283 浏览

java - 将 java 服务器移植到 Android

我正在开发一个使用 OpenMRS 作为 Android 后端的医疗记录系统。OpenMRS 依赖于一些重量级的库,包括 Hibernate 和 Spring。

“Dexing”整个 OpenMRS 应用程序会生成一个对于 Android classes.dex 文件格式来说太大的文件(这个大小限制已经有据可查)。为了解决这个问题,我目前正在从依赖项创建多个 dex 文件,并在运行时使用 Android 的 dex 类加载器加载它们。

由于实际使用服务器的移动版本的方式,尽管存在巨大的依赖关系,但实际处理需求将非常低。我不想在这里在我的手机上运行企业服务器。

在我花费数周的时间尝试设计这个之前,我只想问开发者社区:这个策略只是一个白日梦吗?如果我加载所有这些库,整个二进制文件会被加载到 RAM 中并破坏系统吗?有没有优化这样一个应用程序的好方法?我在这里缺少一些明显的问题或解决方案吗?

0 投票
1 回答
7871 浏览

java - 将 Google Guava 添加到 Android 项目 - 显着减慢构建速度

将 Google Guava r09 添加到我们的 Android 项目后,构建时间显着增加,尤其是 DEX 生成阶段。我知道 DEX 生成需要我们所有的类 + 我们依赖的所有 jar 并将它们转换为 DEX 格式。Guava 是一个非常大的 jar,大约 1.1MB

  1. 这可能是构建速度放缓的原因吗?
  2. 有什么办法可以加快速度吗?

PS 通常我从 Intellij 构建,但我也尝试使用 Maven 构建 - 结果相同。

谢谢

亚历克斯

0 投票
17 回答
73962 浏览

android - Dex Loader 无法执行多个 dex 文件定义

好吧,现在我真的被困在这里了。我不知道该做什么,去哪里或任何事情!

我一直在尝试卸载、重新安装 SDK 和 Eclipse 版本,试图用谷歌搜索出来,但是 nu-uh... 什么都没有!!!

我可以在模拟器中运行我的应用程序,但我不能导出它...

[2011-10-07 16:35:30 - Dex Loader] 无法执行 dex:多个 dex 文件定义 Lcom/dreamhawk/kalori/DataBaseHelper;

这是数据库助手

我猜测:

但我不知道该怎么办......请帮助!:'(