2016-09-20 153 views
11

我在Eclipse安裝中更新了AppCompat庫到24.2.1和SDK到Android 7。 既然如此,我無法運行我的任何應用程序。 我很欣賞,如果你能有點幫助與...java.lang.NoClassDefFoundError:失敗的解決方案:Landroid/support/v4/os/BuildCompat

E/AndroidRuntime(17555): java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/os/BuildCompat; 
E/AndroidRuntime(17555): at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:196) 
E/AndroidRuntime(17555): at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181) 
E/AndroidRuntime(17555): at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521) 
E/AndroidRuntime(17555): at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71) 
E/AndroidRuntime(17555): at com.ryosoftware.calendareventsnotifier.MainActivity.onCreate(MainActivity.java:844) 
E/AndroidRuntime(17555): at android.app.Activity.performCreate(Activity.java:5990) 
E/AndroidRuntime(17555): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
E/AndroidRuntime(17555): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311) 
E/AndroidRuntime(17555): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420) 
E/AndroidRuntime(17555): at android.app.ActivityThread.access$900(ActivityThread.java:154) 
E/AndroidRuntime(17555): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
E/AndroidRuntime(17555): at android.os.Handler.dispatchMessage(Handler.java:102) 
E/AndroidRuntime(17555): at android.os.Looper.loop(Looper.java:135) 
E/AndroidRuntime(17555): at android.app.ActivityThread.main(ActivityThread.java:5294) 
E/AndroidRuntime(17555): at java.lang.reflect.Method.invoke(Native Method) 
E/AndroidRuntime(17555): at java.lang.reflect.Method.invoke(Method.java:372) 
E/AndroidRuntime(17555): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
E/AndroidRuntime(17555): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 
E/AndroidRuntime(17555): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.os.BuildCompat" on path: DexPathList[[zip file "/data/app/com.ryosoftware.calendareventsnotifier-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 
E/AndroidRuntime(17555): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
E/AndroidRuntime(17555): at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
E/AndroidRuntime(17555): at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
E/AndroidRuntime(17555): ... 18 more 
E/AndroidRuntime(17555): Suppressed: java.lang.ClassNotFoundException: android.support.v4.os.BuildCompat 
E/AndroidRuntime(17555):  at java.lang.Class.classForName(Native Method) 
E/AndroidRuntime(17555):  at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
E/AndroidRuntime(17555):  at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
E/AndroidRuntime(17555):  at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
E/AndroidRuntime(17555):  ... 19 more 
E/AndroidRuntime(17555): Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 
+0

檢查這個 1。右鍵單擊您的項目並選擇屬性。 2.從左側菜單中選擇Java Build Path。 3.選擇訂單和導出選項卡。 4.從列表中確認已添加到項目中的庫或外部罐被檢查。 5.最後,清理你的項目並運行。 – Ciril

+0

我不明白爲什麼你現在不使用Android Studio,現在Eclipse支持已經消失了。 –

回答

16

你得到NoClassDefFoundError & ClassNotFoundException

NoClassDefFoundError in Java comes when Java Virtual Machine is not able to find a particular class at runtime which was available at compile time.

FYI

您使用的是Eclipse。 Android Studio是一種非常簡單的Android開發方法,如果您設法掌握它的話。對於一直在使用Eclipse的開發人員來說,遷移到Studio對他們來說是一場噩夢。 Eclipse已經死了(我個人認爲)。

爲了您的NoClassDefFoundError問題轉到重建選項Project > Clean下,然後選擇要清理。然後重新啓動Eclipse和再次運行該項目。

解決方案

Check your classpath contains that jar (AppCompat), if your classpath doesn't contain the jar then just add that class in your classpath.

你應該使用Android的工作室,而不是Eclipse的。閱讀

  1. Support Library Features

的搖籃構建腳本的依賴標識符爲這個圖書館如下:

com.android.support:appcompat-v7:24.2.1 
+1

感謝您的評論。最後解決了包括正確的appcompat庫。不幸的是,我目前無法將我所有的項目遷移到AndroidStudio。 –

+1

@IntelliJAmiya hello我有和Android Studio一樣的問題,我已經在我的主應用程序和應用程序中導入了這個庫。 – Libathos

0

在我的情況下錯誤是由於使用整個所致gms:播放服務庫。 gms:play-services的某些組件指的是除您明確指定的版本以外的其他版本。

僅使用所需的播放服務,例如:'com.google.android.gms:play-services-analytics:10.2.0'而不是'com.google.android.gms:play-services: 10.2.0' 。

另見:All com.android.support libraries must use the exact same version specification

良好讀取:https://blog.mindorks.com/avoiding-conflicts-in-android-gradle-dependencies-28e4200ca235

1

在我的情況

  1. 清潔工程
  2. 無效並重新啓動

它的工作

相關問題