如何清理离子项目? (MultiDex错误)

时间:2016-07-20 23:18:53

标签: ionic-framework android-multidex

希望你能帮助我。 我在Genymotion模拟器和我的真实设备上运行我的应用程序时遇到了一个大问题,因为我被困在这几天已经有几天了。问题是我得到了MultiDex error。我已经按照这两个步骤 Multidex,我在build.gradle文件中添加了multiDexEnabled true行,并且还在我的Manifest上的multidex支持库中添加了该类。

经过几个小时的搜索,我发现我需要清理我的项目,以防止它克服Android支持的65k方法(MultiDex错误),但是(总是有一个“但是”)我是新手离子发展,我不知道我可以删除什么,不能删除什么,什么是重要的,什么是不重要的。

在尝试解决它的一些变化之后,错误从MultiDex变为DexDebug,我不是专家,但我认为它几乎是一样的。对不起,如果我错了,那只是一个猜测。

有人可以帮我理解并帮助我解决这个问题吗?

由于我还不允许使用图片,显示我的项目结构,错误和模拟器(没有应用程序的标志)的打印屏幕已发布here

1 个答案:

答案 0 :(得分:1)

发布的屏幕截图中的错误显示:

java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

您的构建脚本尝试调用的com/android/dx/command/Main类(dx工具的一部分)是使用Java 1.8(major.minor版本52.0)编译的,而JDK 1.7正在执行{{1} (正如你在日志中看到的那样)。

您有两种方法可以解决此错误:

  • 安装JDK 1.8并让Gradle使用它(例如,通过将JAVA_HOME指向1.8的路径)。

  • 将buildtools还原为旧版本,例如buildToolsVersion "23.0.2"