IDE下降了程序編譯的門檻, 讓Android程序的編譯和運行變得簡單易操做. 但不管Eclipse仍是Android Studio, IDE都不是很是智能和可靠的, 總會出大大小小的問題. 不少時候, 我會花費不少精力去解決編譯器出現的重複的編譯問題, 面向搜索引擎+英語, 一路調試到build success. 這不是根本的辦法, 必須深刻理解Android源碼的編譯過程和原理, 才能一勞永逸的解決問題.java
Android Studio的IDE採用了構建工具gradle, 關於build.gradle構建腳本, 連接戳右邊:android
Q: Android Studio com.android.dex.DexException: Multiple dex files defineapi
A:app
Q: java語法庫不支持的類版本錯誤ide
Error: java.lang.UnsupportedClassVersionError: com/android/dx/command/Main: Unsupported major.minor version 52.0Error: at java.lang.ClassLoader.defineClass1(Native Method) Error: at java.lang.ClassLoader.defineClass(ClassLoader.java:800) Error: at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) Error: at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) Error: at java.net.URLClassLoader.access$100(URLClassLoader.java:71) Error: at java.net.URLClassLoader$1.run(URLClassLoader.java:361) Error: at java.net.URLClassLoader$1.run(URLClassLoader.java:355) Error: at java.security.AccessController.doPrivileged(Native Method) Error: at java.net.URLClassLoader.findClass(URLClassLoader.java:354) Error: at java.lang.ClassLoader.loadClass(ClassLoader.java:425) Error: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) Error: at java.lang.ClassLoader.loadClass(ClassLoader.java:358) Error: at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) Error:Exception in thread "main" Error:java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0 Error: at java.lang.ClassLoader.defineClass1(Native Method) Error: at java.lang.ClassLoader.defineClass(ClassLoader.java:800) Error: at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) Error: at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) FAILURE: Build failed with an exception. Error: at java.net.URLClassLoader$1.run(URLClassLoader.java:361) Error: at java.net.URLClassLoader$1.run(URLClassLoader.java:355) Error: at java.security.AccessController.doPrivileged(Native Method) Error: at java.net.URLClassLoader.findClass(URLClassLoader.java:354) Error: at java.lang.ClassLoader.loadClass(ClassLoader.java:425) Error: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) Error: at java.lang.ClassLoader.loadClass(ClassLoader.java:358) Error: at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) Error:Exception in thread "main" 工具
* What went wrong:gradle
Execution failed for task ':app:transformClassesWithDexForDebug'ui
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException:搜索引擎
com.android.ide.common.process.ProcessException: java.util.concurrent.ExcutionException:spa
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExceException: Process 'command 'C:\Program Files\Java\jdk1.7.0_67\bin\java.exe' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output
A: AS自帶的buildToolsVersion版本和Java JDK版本不一致. 能夠下降JDK版本或者修改buildToolsVersion版本, 直接在build.gradle中修改, 將buildToolsVersion "24.0.1"下降到"23.0.3"