【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
2023-06-13 09:17:59 时间
文章目录
前言
尝试在 Android 系统中执行 Java 程序 , 【开发环境】Android 命令行中执行 Java 程序 ( IntelliJ IDEA 中创建 Java / Kotlin 工程 | dx 打包 DEX 字节码文件 | dalvikvm 命令 ) , 出现的错误记录 ;
一、Android 命令行与 PC 可执行 JAR 文件不兼容
尝试将 【开发环境】Android 命令行中执行 Java 程序 ( IntelliJ IDEA 中创建 Java / Kotlin 工程 | dx 打包 DEX 字节码文件 | dalvikvm 命令 ) 三、编译在 PC 上可执行的 Java / Kotlin JAR 包 生成的 JAR 包打包成 dex 文件 , 打包过程中出错 ;
报错信息 :
D:\002_Project\003_Java_Work\workspace\AndroidShell\out\artifacts>dx --dex --output kotlin.dex AndroidShell_jar\AndroidShell.jar
PARSE ERROR:
class name (kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader) does not match path (META-INF/versions/9/kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.class)
...while parsing META-INF/versions/9/kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.class
1 error; aborting
D:\002_Project\003_Java_Work\workspace\AndroidShell\out\artifacts>
直接打包字节码文件是成功的 , 打包 PC 上的可执行文件失败 ;
二、Android 命令行使用 dalvik 命令不能直接执行 Kotlin 编译的 dex 文件
使用
dalvikvm -cp kotlin.dex StudentKt
命令 , 执行 Kotlin 编译的 dex 文件 , 报错如下 :
1|walleye:/data/system/debug/AndroidShell # dalvikvm -cp kotlin.dex StudentKt
Exception in thread "main" java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/jvm/internal/Intrinsics;
at StudentKt.main(Unknown Source:2)
Caused by: java.lang.ClassNotFoundException: Didn't find class "kotlin.jvm.internal.Intrinsics" on path: DexPathList[[dex file "kotlin.dex"],nativeLibraryDirectories=[/system/lib64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 1 more
1|walleye:/data/system/debug/AndroidShell #
Java 代码编译的 Dex 文件可以执行 ;
相关文章
- android开机动画多长时间_Android开机动画及黑屏[通俗易懂]
- java的运行环境是什么_Java运行环境是什么
- java山寨qq账号密码验证_Java实战-山寨QQ
- java setproperty 未生效_Java System类setProperty()方法及示例[通俗易懂]
- android 定时器的实现比较
- 【面试黑洞】Android 的键值对存储有没有最优解?
- Java把string转json格式_java实体类转json字符串
- android应用程序_chrome Android
- java销毁定时器_Java 定时器退出解决方案
- android调用相册并显示图片_android studio制作简易相册
- JAVA外文参考文献_java参考文献近五年
- Android 用户态启动流程分析
- 【Android 异步操作】手写 Handler ( Handler 发送与处理消息 | Handler 初始化 | 完整 Handler 代码 )
- 【Android 安全】DEX 加密 ( Java 工具开发 | apk 文件对齐 )
- 【Android 逆向】Android 逆向通用工具开发 ( PC 端工程分析 | 网络初始化操作 | PC 端工程核心业务逻辑 )
- 【Android 逆向】函数拦截 ( GOT 表数据结构分析 | 函数根据 GOT 表进行跳转的流程 )
- 【Android UI】Canvas 画布 ⑦ ( Canvas 绘制显示区域 | Canvas 绘制矩形源码分析 )
- 【Android Gradle 插件】自定义 Gradle 任务 ③ ( Gradle 自定义任务创建方法 Project#task 函数 | Task#doFirst 函数用法 )
- 【错误记录】Android Studio 编译报错 ( To use data binding annotations in Kotlin, apply the ‘kotlin-kapt‘ plu )
- Android开发中遇到的问题(三)——eclipse创建android项目无法正常预览布局文件详解手机开发
- [android] 利用广播实现ip拨号详解手机开发
- Linux下安装Java 开发环境指南(linux装java环境)
- Java工程师集MySQL技能于一身(java工程师mysql)
- Linux与Java结合,打造完美解决方案(linux和java)
- Oracle数据库中调用Java实现可扩展应用程序(oracle内嵌java)
- Redis中使用Java快速实现自增(redis自增 java)
- android中使用SharedPreferences进行数据存储的操作方法
- 解析Android开发优化之:对界面UI的优化详解(一)
- Android中新引进的GoogleAuthenticator验证系统工作原理浅析
- android错误aapt.exe已停止工作的解决方法
- android中webview控件和javascript交互实例
- android中DatePicker和TimePicker的使用方法详解