Andmore 的 Android Package Builder 因与 sun/misc/BASE64Encoder 相关的错误而失败
Posted
技术标签:
【中文标题】Andmore 的 Android Package Builder 因与 sun/misc/BASE64Encoder 相关的错误而失败【英文标题】:Andmore's Android Package Builder fails with error related to sun/misc/BASE64Encoder 【发布时间】:2018-10-14 04:40:15 【问题描述】:我刚刚将我的工具链从 Ubuntu MATE 16.04 + Eclipse Luna + ADT 升级到了 Ubuntu MATE 18.04 + Eclipse Oxygen + Andmore。
我converted 我现有的基于 ADT 的 android 项目之一到 Andmore 并尝试构建它。但是,我收到以下错误消息:
Errors occurred during the build.
Errors running builder 'Android Package Builder' on project 'qz'.
sun/misc/BASE64Encoder
我做了一些研究,得到了一些指示,但没有最终的解决方案。
Here 是关于类似错误信息的问题;唯一的答案和其中一个 cmets 表明它与 Java 9 中不推荐使用的类有关,决定因素是运行 Eclipse 的 JVM(而不是应用程序的目标 JVM)。
Eclipse 社区论坛上的This post 也提到了 JRE 8 并显示了它的配置设置。
当我转到 Window > Preferences > Installed JREs 时,我看到 /usr/lib/jvm/java-8-openjdk-amd64
的一个条目,上面引用的答案应该是正确的。
为了完整起见,Ubuntu 18.04 似乎带有两个 Java 版本,因为命令行上的 java -version
给了我:
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)
最重要的是,我刚刚注意到在我的工作区树中,-metadata/.plugins/org.eclipse.andmore.android.logger/environment.log
有:
2018-05-03 20:06:03,654 - os.name - Linux
2018-05-03 20:06:03,655 - os.arch - amd64
2018-05-03 20:06:03,655 - os.version - 4.15.0-20-generic
2018-05-03 20:06:03,655 - java.version - 10.0.1
2018-05-03 20:06:03,655 - java.vendor - Oracle Corporation
2018-05-03 20:06:03,655 - java.vendor.url - http://java.oracle.com/
2018-05-03 20:06:03,655 - java.home - /usr/lib/jvm/java-11-openjdk-amd64
2018-05-03 20:06:03,655 - java.vm.specification.name - Java Virtual Machine Specification
2018-05-03 20:06:03,655 - java.vm.specification.vendor - Oracle Corporation
2018-05-03 20:06:03,655 - java.vm.specification.version - 10
显然 Andmore 运行在 OpenJDK 10(我系统上的默认 JRE)上,而不是为 Eclipse 选择的那个。
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:查看eclipse.ini
(在我的 Eclipse 路径中),我发现了对 JRE 11 的明确引用:
-vm
/usr/lib/jvm/java-11-openjdk-amd64/bin
我改成之后
-vm
/usr/lib/jvm/java-8-openjdk-amd64/bin
我终于得到了一个APK,在清理了一次项目后,我可以将它安装在设备上。
【讨论】:
以上是关于Andmore 的 Android Package Builder 因与 sun/misc/BASE64Encoder 相关的错误而失败的主要内容,如果未能解决你的问题,请参考以下文章
Android package属性package name和Application ID三者的联系及区别
Android package属性package name和Application ID三者的联系及区别
Android package属性package name和Application ID三者的联系及区别
Android package属性package name和Application ID三者的联系及区别