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三者的联系及区别

MY_PACKAGE_REPLACED 停止工作 - 如何找到应用升级 android

android.intent.action.MY_PACKAGE_REPLACED 不工作