2012-06-21 29 views
7

En mi aplicación uso MessageDigest.getInstance("SHA-1") para obtener SHA1, puede ejecutarse con éxito en Android 2.3, pero no se puede ejecutar en Android 4.0 y mostrará la siguiente excepción: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) 

¿Quién puede explicar este caso?

Respuesta

9

De reading around googlegroups parece que android.security.MessageDigest se eliminó en Honeycomb. Desafortunadamente, aún no he encontrado evidencia de esto en la documentación del desarrollador de Android.

Pruebe usar java.security.MessageDigest en su lugar.

+0

Gracias por su respuesta. La solución es correcta, puede hacer que mi aplicación se ejecute correctamente en 4.0 después de cambiar a "java.security.MessageDigest". – Judy

+1

¿cómo vas a cambiar eso si está en el Google Add on SDK? – Mikey

Cuestiones relacionadas