每当在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