記一次Android studio升級之後的坑
像往常一樣開啟Android studio,但這次它提示我升級!說是什麼為了更好的體驗,在好奇心的驅使下,我毅然地點選了“update”按鈕。升級之後,編譯專案,報出了N多個error,我的心都慌完!整個人都是涼的,但想到作為社會主義的接班人,不能被這個給嚇到,因為我知道解決了眼前的error,還有日後的error。好了,言歸正傳,下面說一下什麼解決的error。
1、第一個error比較簡單,就是升級之後一些舊的配置資訊不能再用,需要根據提示更新就好,這裡就不詳細介紹了。
2、這個error就比較噁心了,直接貼程式碼:
Caused by: java.lang.ExceptionInInitializerError
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.api.internal.classloading.GroovySystemLoaderFactory.forClassLoader(GroovySystemLoaderFactory.java:44) at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory.executeInWorkerClassLoader(IsolatedClassloaderWorkerFactory.java:106) at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory.access$200(IsolatedClassloaderWorkerFactory.java:56) at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory$1$1.call(IsolatedClassloaderWorkerFactory.java:84) at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory$1$1.call(IsolatedClassloaderWorkerFactory.java:81) at org.gradle.internal.progress.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:350) at org.gradle.internal.progress.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:340) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:120) at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory$1.execute(IsolatedClassloaderWorkerFactory.java:81) at org.gradle.workers.internal.DefaultWorkerExecutor$1.call(DefaultWorkerExecutor.java:105) ... 8 more
Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.4.4 and you are trying to load version 2.4.12
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$DefaultModuleListener.onModule(MetaClassRegistryImpl.java:511) at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromProperties(ExtensionModuleScanner.java:80) at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromMetaInf(ExtensionModuleScanner.java:74) at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModules(ExtensionModuleScanner.java:56) at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:112) at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:73) at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:36) ... 23 more
看著好像很簡單,都已經給出錯誤提示了,把groovy-all換成2.4.12就行了。其實不然!我換了也沒用,這個error花了我兩天時間!在網上找了很多相關的答案,我來總結一下:
1、在build.gradle中新增groovy-all 2.4.12,或者是把build.gradle中的groovy刪除再重新編譯。
2、把build.gradle中的groovy-all的版本號後面換成加號,如:groovy-all 2.4.+ 再編譯。
以上的方法我都試過,沒卵用~差點絕望。
後來我對照了一下上一個版本,發現升級之後,AS自動把我的project的build.gradle中的classpath的配置降到3.1.1~這尼瑪啊!坑爹啊!修改回原先的版本後,完美執行!有遇到這問題的朋友可以借鑑一下。
最後我想吟一首詩,山窮水復疑無路,柳暗花明又一村。再套用最近朋友圈流行的話“沒能把我打倒的,終將使我變得強大”!