每當在Android 2.1環境中運行以下代碼時,它都會崩潰。下面的代碼函數將明文字符串轉換爲MD5。字符串s被硬編碼爲test
。它應該打印以下結果:098f6bcd4621d373cade4e832627b4f6
Android MD5實施崩潰
package md5.android;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collections;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class md5android extends Activity {
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
String s = "test";
String res = md5(s);
TextView tv = new TextView(this);
tv.setText(res);
setContentView(tv);
}
public String md5(String s) {
try {
MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
StringBuffer hexString = new StringBuffer();
for (int i=0; i<messageDigest.length; i++)
hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
return hexString.toString();
}
catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
}
堆棧跟蹤:
Thread [<3> main] (Suspended (exception RuntimeException))
ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2417
ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2512
ActivityThread.access$2200(ActivityThread, ActivityThread$ActivityRecord, Intent) line: 119
ActivityThread$H.handleMessage(Message) line: 1863
ActivityThread$H(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 123
ActivityThread.main(String[]) line: 4363
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 521
ZygoteInit$MethodAndArgsCaller.run() line: 860
ZygoteInit.main(String[]) line: 618
NativeStart.main(String[]) line: not available [native method]
錯誤日誌:
太棒了,它崩潰了...堆棧跟蹤怎麼樣?我的水晶球壞了... – WarrenFaith 2011-12-29 02:36:58
日誌消息將是相當有用的..請附上你的錯誤日誌也! – Abhinava 2011-12-29 02:41:10
對不起關於 – joshdeco 2011-12-29 06:01:07