当我在处理输入流抛出时启动android应用程序错误

问题描述 投票:5回答:1

main activity.Java

public class MainActivity extends AppCompatActivity {
LinearLayout llStats;
TextView txtPlayCount, txtEarned;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    llStats = (LinearLayout) findViewById(R.id.llStats);
    txtPlayCount = (TextView) findViewById(R.id.txtNowPlaying);
    txtEarned = (TextView) findViewById(R.id.txtEarned);

    // layout background transparent
    llStats.getBackground().setAlpha(150);
    llStats.setVisibility(View.VISIBLE);

    Intent i = getIntent();
    String now_playing = i.getStringExtra("now_playing");
    String earned = i.getStringExtra("earned");

    // Diplaying the text
    txtPlayCount.setText(now_playing);
    txtEarned.setText(earned);

    }
}

splash screen.Java

public class SplashScreen extends Activity {
String now_playing, earned;
//Splash screen Timeout
private static int SPLASH_TIME_OUT = 3000;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content_splash_screen);
    new PrefetchData().execute();


    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            Intent intent = new Intent(SplashScreen.this, MainActivity.class);
            startActivity(intent);

            finish();
        }
    }, SPLASH_TIME_OUT);

   /* FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });*/
}
    private class PrefetchData extends AsyncTask<Void,Void,Void>
    {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected Void doInBackground(Void... params) {

            JsonParser jsonParser=new JsonParser();
            String json=jsonParser.getJSONFromUrl("http://api.androidhive.info/game/game_stats.json");

            Log.e("Response is ", ">" + json);

            if (json != null)

                try
                {
                    JSONObject jObj=new JSONObject(json).getJSONObject("game_stat");
                    now_playing = jObj.getString("now_playing");
                    earned = jObj.getString("earned");

                    Log.e("JSON", "> " + now_playing + earned);


                }
                catch (JSONException e)
                {
                    e.printStackTrace();
                }


            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {

            super.onPostExecute(aVoid);
            Intent i = new Intent(SplashScreen.this, MainActivity.class);
            i.putExtra("now_playing", now_playing);
            i.putExtra("earned", earned);
            startActivity(i);

            // close this activity
            finish();
        }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_splash_screen, menu);
    return true;
    }
}

错误列表

02-02 12:27:07.983 1856-2006/com.google.android.googlequicksearchbox:search W/ErrorReporter: reportError [type: 211, code: 524300]: Error at processing input stream 02-02 12:27:07.984 1856-2006/com.google.android.googlequicksearchbox:search W/ErrorProcessor: onFatalError, processing error from engine(4)
                                                                                              com.google.android.apps.gsa.shared.speech.a.g: Error at processing input stream
                                                                                                  at com.google.android.search.core.hotword.l.bsw(HotwordRecognitionRunner.java:166)
                                                                                                  at com.google.android.search.core.hotword.l$1.run(HotwordRecognitionRunner.java:138)
                                                                                                  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
                                                                                                  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                                  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)
                                                                                                  at com.google.android.apps.gsa.shared.util.c.a.l$1.run(GsaThreadFactory.java:99)
                                                                                               Caused by: com.google.android.apps.gsa.shared.api.io.GsaIOException: Error code: 393237 | Error code: 393220 | AudioRecord failed to initialize.
                                                                                                  at com.google.android.apps.gsa.speech.audio.Tee.pO(Tee.java:426)
                                                                                                  at com.google.android.apps.gsa.speech.audio.Tee.k(Tee.java:309)
                                                                                                  at com.google.android.apps.gsa.speech.audio.ad.read(Tee.java:503)
                                                                                                  at java.io.InputStream.read(InputStream.java:162)
                                                                                                  at com.google.android.apps.gsa.speech.audio.z.run(MultipleReaderAudioSource.java:206)
                                                                                               Caused by: com.google.android.apps.gsa.shared.api.io.GsaIOException: Error code: 393220 | AudioRecord failed to initialize.
                                                                                                  at com.google.android.apps.gsa.speech.audio.v.aHv(MicrophoneInputStream.java:172)
                                                                                                  at com.google.android.apps.gsa.speech.audio.v.read(MicrophoneInputStream.java:224)
                                                                                                  at com.google.android.apps.gsa.shared.util.ai.a(IoUtils.java:149)
                                                                                                  at com.google.android.apps.gsa.speech.audio.Tee.pO(Tee.java:422)
                                                                                                  at com.google.android.apps.gsa.speech.audio.Tee.k(Tee.java:309) 
                                                                                                  at com.google.android.apps.gsa.speech.audio.ad.read(Tee.java:503) 
                                                                                                  at java.io.InputStream.read(InputStream.java:162) 
                                                                                                  at com.google.android.apps.gsa.speech.audio.z.run(MultipleReaderAudioSource.java:206)  02-02 12:27:07.984 1856-2010/com.google.android.googlequicksearchbox:search I/HotwordRecognitionRnr: Stopping hotword detection. 02-02 12:27:07.985 1856-1856/com.google.android.googlequicksearchbox:search I/HotwordWorker: #onError(false)
android launching
1个回答
1
投票

我有同样的问题,经过一些繁重的调试,我发现我有两个提供商在清单中有相同的athority导致问题。

第一个提供程序用于内容提供程序以访问数据库。我最近添加的第二个符合使用FileProvider.getUriForFile(....)而不是Uri.fromFile(......)的N版本指南;否则在针对N版本时会抛出Uri暴露的异常。

更改权限名称后,错误已解决。

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.