...
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$4.done(AsyncTask.java:415)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
Caused by: java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.lang.String[]
...
原因:
AsyncTask asyncTask = new AsyncTask<String, Void, GetDataResponse>() {
@Override
protected GetPublicKeyResponse doInBackground(String... strings) {
...
正确写法:
AsyncTask<String, Void, GetDataResponse> asyncTask = new AsyncTask<String, Void, GetDataResponse>() {
@Override
protected GetPublicKeyResponse doInBackground(String... strings) {
...
编译时类型(即声明对象时的类型)要和运行时类型(即new出来的对象)一致。
参考:
AsyncTask java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.lang.Void[] 异常