首页 文章

java.lang.RuntimeException:仅在小米设备中执行doInBackground()时引起

提问于
浏览
1

Google Play商店仅在小米设备中显示崩溃(我无法重现) . 请在下面找到崩溃日志 . 我曾试图在小米设备中重现这种崩溃,但无法重现 .

java.lang.RuntimeException:位于java.util.concurrent.FutureTask.setException的java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)的android.os.AsyncTask $ 3.done(AsyncTask.java:309) (FutureTask.java:223)java.util.concurrent.ThreadPoolExecutor上java.util.concurrent.FutureTask.run(FutureTask.java:242)的android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:234) .runWorker(ThreadPoolExecutor.java:1113)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:588)at java.lang.Thread.run(Thread.java:818)引起:java.lang . ExceptionInInitializerError:at.betterbutter.android.emoji.EmojiParse $ ParseAsync.doInBackground(EmojiParse.java:30)at.betterbutter.android.emoji.EmojiParse $ ParseAsync.doInBackground(EmojiParse.java:19)at android.os.AsyncTask $ 2.call(AsyncTask.java:295)at java.util.concurrent.FutureTask.run(FutureTask.java:237)

这是我的代码:

public class EmojiParse {

    public void parse(JSONObject jsonObject) {
        new ParseAsync().execute(jsonObject);
    }

    public class ParseAsync extends AsyncTask<JSONObject, Void, Void> {

        @Override
        protected Void doInBackground(JSONObject... params) {
            JSONObject jsonObject = params[0];
            try {
                JSONArray jsonArray = jsonObject.getJSONArray("emojis");
                for (int i = 0; i < jsonArray.length(); ++i) {
                    JSONObject object = jsonArray.getJSONObject(i);
                    String text = object.getString("text");
                    String code = object.getString("code");
                    String surrogates = StringEscapeUtils.unescapeJava(object.getString("surrogates"));


                    EmojiMap emojiMap = new EmojiMap();


                    emojiMap.hashSet.add(code);
                    emojiMap.displayMap.put(text, surrogates);
                    emojiMap.reverseMap.put(surrogates, text);

                }
            } catch (JSONException e) {
                e.printStackTrace();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
            return null;
        }
    }

}

1 回答

  • 1

    在xiaomi手机中,在后台运行仅限于启用它

    Setting - >' Apps' -> 已安装应用 -> 'Your App - > Background Restrictions - > No Restriction

    这是因为xiaomi默认为每个应用程序使用Baterry Optimization .

    检查此链接here for example

    使用给定的代码移动到设置页面

    Intent intent = new Intent();
    intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
    Uri uri = Uri.fromParts("package", getPackageName(), null);
    intent.setData(uri);
    startActivity(intent);
    

    删除限制 .

相关问题