有没有办法从Android studio构建Android应用程序到一个可以在Windows/Mac/Ubuntu上运行的jar文件?如果不是,为什么呢?
发布于 2019-11-17 05:04:33
尽管两者都是Java语法,但Oracle Java和Android Java几乎没有什么共同之处。Gradle当然可以打包JAR,但是Android类对于常规的JRE是未知的。最好使用普通的IntelliJ IDEA,它非常适合桌面Java应用程序-否则你只能在emulator或Anbox上运行安卓应用程序,这不太便携。
发布于 2019-11-17 05:16:47
Tl;DR No你不能在Windows/Mac/Linux上运行安卓应用。只有模拟器和Android设备可以运行它们。
在目标设备上运行Gradle之前,您应该检查它在构建过程中执行的步骤。
要在PC上运行(我指的是Windows/Mac/Linux),你需要一个jar。构建步骤中最接近创建jar的就是javac。
在javac之后,它执行将java .class文件转换为Android可读格式或dex格式的步骤,然后将dexes打包到.apk中。
安卓的执行环境支持dex,而不是.class (如果支持,那么安卓应用就可以在所有支持Java的系统上运行)。
假设您设法在javac之后停止,然后设法构建了一个jar。一旦你尝试在安卓环境之外的任何环境中运行它,你会得到大量的NoClassDefFoundErros,因为所有安卓特定的类都不在通常的JVM(非安卓JVM)的库中。
您应该检查关于legal dispute between Oracle and Google的这一点。你会发现Android的Java实现与当时的OpenJDK有很大的不同。
https://stackoverflow.com/questions/58895031
复制相似问题