Java 字节码到 .dex 或 .apk 不起作用...该怎么办?

标签 java android eclipse apk dex

我正在测试在 Eclipse (IDE) 中编写 Java 程序。 我的目标是它可以在 Windows、Linux 和 Android 上运行。

将其导出为 .class 或 .jar 没问题! 我设法使用 Android-Studio-Tool“dx”将其转换,并将 .jar 转换为 .dex 和 .apk(天哪,这是一个可怕的过程)

当我尝试在我的 Android 手机(v6.0.1)上运行它们时,只有 .apk 是可执行的...当我运行 .apk 时,我得到:

“Parsingfehler - Beim Parsen des Pakets ist ein Fehler aufgetreten”
(Parsingerror - 解析数据包时发生错误)

我做错了什么?我发布我的代码,也许有一个错误:

/** v0.01 vom 22.06.2017 @author Rudolf Geist */
package allgemeines;

import javax.swing.JOptionPane;

public class Systemausleser 
{

    public static void main(String[] args)
    {
        // Ich will eine Main, die überall läuft
        System.out.println("Infos auslesen \n");

        System.out.println("Zeichen zwischen Ordnern (Betriebssystem-Abhängig!) : " + System.getProperty("file.separator") );
        System.out.println("OS-Name: " + System.getProperty("os.name") );
        System.out.println("OS-Architektur (OS-Bit-Version): " + System.getProperty("os.arch") );
        System.out.println("User Name: " + System.getProperty("user.name") );

        JOptionPane.showConfirmDialog(null, "Es klappt!");
    }

}

当我尝试使用 .bat [Windows] 或 sh 启动该程序的 .class 或 .jar [称为“testi”] 时。 [Linux - Lubuntu] 成功了!

我可以继续仅在空白 Eclipse 上进行开发,然后尝试转换为 Android 兼容格式...还是应该重新设计我的流程?

最佳答案

您正在使用 Java Swing 库; Android 上为 doesn't exist

Swing 处理 JFrame s 和 JPanels ,Android 使用 Activity s 和 FrameLayout s 之类的东西。这意味着 Android 将不知道如何执行您的代码,因为它不知道 JOptionPane 到底是什么。

您应该尝试仅迁移基本计算,并避免任何特定于操作系统的调用。您可以通过检查 Android API 的包调用来验证支持哪些功能,或者将代码快速粘贴到 Android Studio 中以查看是否有任何投诉。

如果您确实需要独立于平台的 UI,则应该寻求与可用库(例如 nanovg )的 native 集成,或搜索与平台无关的解决方案。我针对这个问题创建了 ribbon-vg

关于Java 字节码到 .dex 或 .apk 不起作用...该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44757320/

相关文章:

java - 在模拟器和手机上获取不同的 DateFormat 结果 - Android

android - LiveData 和 MutableLiveData 的区别

android - 在 Activity 之间切换时出现黑屏

java - java中的客户端Web服务——代理认证

android - Eclipse 无法识别我的 android 设备,为什么?

java - JMockit:如何在使用@Tested 注释时调试测试?

java - 该方法不适用于参数

Java继承: "Casting" variable in abstract class as static

java - 我应该使用哪个版本的 Java 来开发 MOJO Maven 插件?

c++ - Eclipse 中的 MakeFile 是什么?