2014-02-11 19 views
14

Die Anwendung stürzt nach dem Programm ab (Progress generiert von Eclipse IDE).Android-Anwendung stürzt nach dem Programm ab

logcat stacktrace

W/SupportMenuInflater(13657): Cannot instantiate class: android.support.v7.widget.ShareActionProvider 
W/SupportMenuInflater(13657): java.lang.ClassNotFoundException: android.support.v7.widget.ShareActionProvider 
W/SupportMenuInflater(13657): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
E/AndroidRuntime(13657): FATAL EXCEPTION: main 
E/AndroidRuntime(13657): java.lang.NullPointerException 
E/AndroidRuntime(13657): at com.mypack.app.MainActivity.onCreateOptionsMenu(Unknown Source) 
E/AndroidRuntime(13657): at android.app.Activity.onCreatePanelMenu(Activity.java:2571)` 

Standardversion von proguard.cfg Datei

`

EDIT: das Problem, das Sie diese Zeilen hinzufügen müssen, um zu beheben, um proguard.cfg und haben keine Fehler. Neue Zeilen veranlassen proguard, die android.support-Bibliotheken zu ignorieren.

-dontwarn android.support.v4.** 
-keep class android.support.v4.** { *; } 
-dontwarn android.support.v7.** 
-keep class android.support.v7.** { *; } 
+0

können Sie proguard.cfg posten? – Niko

+0

das ist meine proguard-android.txt http://pastebin.com/icLNnUxM – John

+0

Sorry kann nicht auf Pastebin wegen Proxy-Beschränkung zugreifen, aber nateZor Antwort sieht aus wie die erste Sache in diesem Fall zu überprüfen. – Niko

Antwort

24

In Ihrem proguard Config, haben Sie den Unterhalt der Klasse kommentierte, dass es nicht finden können:

#-keep public class android.support.v7.widget.ShareActionProvider 

Haben Sie versucht, uncommenting wieder, dass und Gebäude?

EDIT: da das Problem nicht lösen, versuchen Sie vielleicht den Fang alle hier beschrieben:

Android Proguard configuration for the v7 Support Library ActionBar

speziell, versuchen Sie:

-keep class android.support.v7.internal.** { *; } 
-keep interface android.support.v7.internal.** { *; } 
-keep class android.support.v7.** { *; } 
-keep interface android.support.v7.** { *; } 

Anschließend können Sie es machen mehr spezifisch, wenn das funktioniert, weil dies offensichtlich nur alle Support-Bibliotheksklassen enthält, auch solche, die Sie nicht verwenden.

+0

Ich habe versucht, diese Zeile auskommentieren, aber das gleiche Problem erscheint – John

+0

OK, ich bearbeitet mit einem neuen Vorschlag. Ich hoffe es funktioniert für dich. – natez0r

+0

danke, das Problem wurde gelöst, ich habe die Lösung im ursprünglichen Beitrag hinzugefügt, ignoriert nur die Unterstützung Bibliotheken von Proguard – John