2012-06-21 14 views
7

In meiner Anwendung verwende ich MessageDigest.getInstance("SHA-1") um SHA1 zu bekommen, kann es erfolgreich in Android 2.3 laufen, aber es kann nicht in Android 4.0 laufen und es wird die folgende Ausnahme zeigen:java.lang.NoClassDefFoundError: android.security.MessageDigest

FATAL EXCEPTION: main 
java.lang.NoClassDefFoundError: android.security.MessageDigest 
at com.screenshare.email.Utility.getConsistentDeviceId(Utility.java:597) 
at com.screenshare.exchange.SyncManager.getDeviceIdInternal(SyncManager.java:1079) 
at com.screenshare.exchange.SyncManager.getDeviceId(SyncManager.java:1045) 
at com.screenshare.exchange.SyncManager.onCreate(SyncManager.java:1813) 
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2253) 
at android.app.ActivityThread.access$1600(ActivityThread.java:123) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4424) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
at dalvik.system.NativeStart.main(Native Method) 

Wer kann diesen Fall erklären?

Antwort

9

Von reading around googlegroups klingt es wie android.security.MessageDigest wurde in Honeycomb entfernt. Leider kann ich dies in der Android-Entwicklerdokumentation noch nicht finden.

Verwenden Sie stattdessen java.security.MessageDigest.

+0

Vielen Dank für Ihre Antwort. Die Lösung ist richtig, sie kann meine Anwendung erfolgreich in 4.0 nach der Änderung von "java.security.MessageDigest" ausführen. – Judy

+1

Wie ändern Sie das, wenn es im Google Add-On-SDK enthalten ist? – Mikey

Verwandte Themen