2012-06-21 23 views
7

अपने आवेदन में मैं MessageDigest.getInstance("SHA-1") का उपयोग SHA1 प्राप्त करने के लिए, यह एंड्रॉयड 2.3 में सफलतापूर्वक चला सकते हैं, लेकिन यह एंड्रॉयड 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 को हनीकॉम में हटा दिया गया था। दुर्भाग्यवश मुझे एंड्रॉइड डेवलपर दस्तावेज़ों में इसका सबूत अभी तक नहीं मिला है।

इसके बजाय java.security.MessageDigest का उपयोग करने का प्रयास करें।

+0

आपके उत्तर के लिए धन्यवाद। समाधान सही है, यह "java.security.MessageDigest" में परिवर्तन के बाद 4.0 में सफलतापूर्वक चलाया जा सकता है। – Judy

+1

यदि आप एसडीके पर Google एड में हैं तो आप इसे कैसे बदलेंगे? – Mikey