2017-11-20 4 views
0

XiaomiデバイスでGoogleプレイストアがクラッシュしています(再現できません)。下記のクラッシュログを見つけてください。 私はXiaomiデバイスでもこのクラッシュを再現しようとしましたが、再現できませんでした。ここでjava.lang.RuntimeException:XiaomiデバイスでのみdoInBackground()を実行中に発生しました

java.lang.RuntimeException: at android.os.AsyncTask$3.done (AsyncTask.java:309) at java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:354) at java.util.concurrent.FutureTask.setException (FutureTask.java:223) at java.util.concurrent.FutureTask.run (FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run (AsyncTask.java:234) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:588) at java.lang.Thread.run (Thread.java:818) Caused by: java.lang.ExceptionInInitializerError: at in.betterbutter.android.emoji.EmojiParse$ParseAsync.doInBackground (EmojiParse.java:30) at in.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; 
     } 
    } 

} 

答えて

0

をバックグラウンドで実行を

Settingそれを可能とするために制限されている - > 'Apps' ->インストールアプリ-> 'Your App - >Background Restrictions - >No Restriction

xiaomiはすべてのApplicatでデフォルトで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); 

を移動するために与えられたコードを使用してください。

+0

私たちはこれをプログラマブルに行うことができますか? – user8266276

+0

私は私たちが傾けることを恐れています。これは、MUIバージョンのカスタムメイド機能です。それが問題であるかどうか上記を試してみてください。 –

+0

こんにちは、私はXiaomiデバイス – user8266276

関連する問題