2012-06-21 6 views
7

В моем приложении я использую MessageDigest.getInstance("SHA-1"), чтобы получить SHA1, он может успешно работать в Android 2.3, но он не может работать в Android 4.0 и он будет показывать ниже исключение: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) 

Кто может объяснить этот случай?

ответ

9

От reading around googlegroups это звучит как android.security.MessageDigest было удалено в Сотах. К сожалению, я еще не нашел доказательств этого в документации разработчика Android.

Попробуйте вместо этого использовать java.security.MessageDigest.

+0

Благодарим вас за ответ. Решение правильное, оно может сделать мое приложение успешно запущено в 4.0 после изменения на «java.security.MessageDigest». – Judy

+1

как вы собираетесь это изменить, если это в Google Add на SDK? – Mikey

Смежные вопросы