2012-06-21 12 views
7

, bu android 2.3 başarıyla çalıştırabilir, ancak android 4.0 koşamam ve aşağıda istisna gösterecektir:java.lang.NoClassDefFoundError: Ben SHA1 almak için <code>MessageDigest.getInstance("SHA-1")</code> kullanmak Benim uygulamada 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) 

Bu vakayı kim açıklayabilir?

cevap

9

reading around googlegroups'dan itibaren android.security.MessageDigest Honeycomb'da kaldırıldı. Maalesef henüz Android geliştirici dokümanlarında bunun kanıtını bulmuyorum.

Bunun yerine java.security.MessageDigest kullanmayı deneyin.

+0

Cevabınız için teşekkür ederiz. Çözüm doğrudur, "java.security.MessageDigest" olarak değiştirildikten sonra uygulamamın 4.0'da başarıyla çalışmasını sağlayabilir. – Judy

+1

Google SDK'da Ekleme'de bunu nasıl değiştireceksiniz? – Mikey

İlgili konular