问题描述
所以我一直在寻找stackoverflow + reddit + docs,但是对此仍然没有解决方案,我尝试了很多catch块,但是我没有尝试使用bytearray的任何线索,但是仍然是同样的问题。这是错误:
ERROR """ E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.namecompany.nameoftheapp,PID: NOOFPID
java.lang.IllegalArgumentException: bad base-64
at android.util.Base64.decode(Base64.java:161)
at android.util.Base64.decode(Base64.java:136)
at android.util.Base64.decode(Base64.java:118)
at com.nameoftheapp.company.EncryptDecrypt$2.onClick(EncryptDecrypt.java:56)
at android.view.View.performClick(View.java:6294)
at android.view.View$PerformClick.run(View.java:24770)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) """ ERROR
''' **代码:“'' 尝试{
encode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
encode.setText(Base64.encodeToString(inputText.getText().toString().getBytes(),Base64.DEFAULT));
}
});
decode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
decode.setText(new String(Base64.decode(inputText.getText().toString(),Base64.DEFAULT)));
}
});
}
catch (Exception e) {
Toast.makeText(EncryptDecrypt.this,"Numbers Cannot Be Decoded!",Toast.LENGTH_SHORT).show();
} ''''code** '''
UPDATE :::::虽然测试编码部分很好,但是有时解码会完全摆脱类/活动,并进入主要状态,并向我显示代码上面的错误:::: UPDATE >
如果您有任何解决方案或对这个问题有所了解,请先lmk。在此先感谢
解决方法
问题出在您的try / catch块的结构中。你有这样的形状:
try {
encode.setOnClickListener(...);
decode.setOnClickListener(...);
} catch (Exception e) {
// ...
}
这只会捕获设置侦听器时抛出的异常。它对从监听器内部引发的异常没有任何影响。
尝试以下方法:
decode.setOnClickListener(
@Override
public void onClick(View v) {
try {
decode.setText(...);
} catch (Exception e) {
// show toast message here
}
}
);