问题标签 [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.
android - DX被D8取代后,为什么Android还保留DX?
为什么 Android 仍将 DX 保留在其更新的替代品 D8 上?
结果:
这是我使用的程序(文件Primes.java):
以下是我将其编译为.dex文件的方法:
结果:
然后我清理地址,注册名称和评论以便能够比较:
那时它们几乎相同,但不完全一样:
android - 在Android中动态加载.dex文件时出现“ClassNotFound”异常
我正在尝试学习在 Android 中动态加载类(.dex/.jar)。我从教程和 Stack Overflow 问题( tutorial、this和this )中收集了基本思想,但我未能实现动态加载类文件并不断给出ClassNotFound
异常的目的。
我的步骤简要:
按照文章中的说明创建了一个 Java 文件。
将 java 源代码转换为 .class(结果 = DynamicClass.class)
dx
使用Android SDK 中的工具创建 jar 文件。(结果 = 带有 classes.dex 的 dynamic.jar)获得 .jar 文件后,我将其推送到 /sdcard/ (在模拟器和设备上都进行了测试)
模拟器:Android 6.0 和设备:Android 11.0
加载类的简要代码:
我不断收到ClassNotFound
异常。
我错过了什么?为什么无法加载这个简单的类文件:(?
我的清单:
- 确保代码能够获取加载的文件 (<File>.exists())。代码能够获取文件。只是无法加载类。
- 确保dynamic.jar在其中包含一个classes.dex条目。(这是因为DexClassLoader想要一个.jar / .apk文件,其中包含classes.dex条目)
- 尝试在模拟器和设备上运行代码(两者都有不同的 Android 版本)。
异常说明:
异常:java.lang.ClassNotFoundException:在路径上找不到类“DynamicClass”:DexPathList[[zip file "/storage/emulated/0/dynamic.jar"],nativeLibraryDirectories=[/system/lib64, /vendor/lib64 ]]
包含包裹后的异常。
异常:java.lang.ClassNotFoundException:在路径上找不到类“mypack.DynamicClass”:DexPathList [[zip 文件“/storage/emulated/0/mypack.jar”],nativeLibraryDirectories=[/system/lib64,/vendor /lib64]]
java - 如何使用 d8 编译工具保存清单文件?
我用 Gradle 为 Android 平台构建了一个 jar。当我使用该dx
命令时,它可以很好地构建一个带有清单的 jar,但dx
不支持 Java 8 语法。所以我必须将编译工具更改为d8
,它支持 Java 8 语法但它删除了MANIFEST.MF
文件。那么如何使用d8
编译工具来保存manifest呢?
Gradle 构建脚本代码:
android - d8:从命令行使用它时出现奇怪的异常
鉴于我将 d8.bat 添加到我的 PATH 中,我尝试使用现代工具d8
(已替换dx
)将 java 类的文件夹编译到 classes.dex 中。但是,当我按照文档中的示例进行操作时,
我收到了这个错误
当我指定某个类文件的确切路径时,它可以正常工作,但我想包含很多文件,而不仅仅是一个。
如何解决?