Android Studio, приложение не будет работать без сбоев - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь сделать очень простое приложение для Android Studio, написанное на Java, для моего первого проекта приложения.У меня не так много кода, написанного на данный момент, но каждый раз, когда приложение пытается его запустить, оно «перестает работать» и никогда не откроется.

Я не уверен, что ищу правильную часть Logcat дляошибка, но это то, что я считаю, Logcat говорит мне.

2018-10-10 17:21:03.291 11777-20641/com.google.android.googlequicksearchbox:search W/ErrorProcessor: onFatalError, processing error from engine(4)
com.google.android.apps.gsa.shared.speech.a.g: Error reading from input stream
    at com.google.android.apps.gsa.staticplugins.recognizer.i.a.a(SourceFile:342)
    at com.google.android.apps.gsa.staticplugins.recognizer.i.a$1.run(SourceFile:1367)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at com.google.android.apps.gsa.shared.util.concurrent.a.ak.run(SourceFile:66)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    at java.lang.Thread.run(Thread.java:761)
    at com.google.android.apps.gsa.shared.util.concurrent.a.ad$1.run(SourceFile:85)
 Caused by: com.google.android.apps.gsa.shared.exception.GsaIOException: Error code: 393238 | Buffer overflow, no available space.
    at com.google.android.apps.gsa.speech.audio.Tee.g(SourceFile:2531)
    at com.google.android.apps.gsa.speech.audio.ap.read(SourceFile:555)
    at java.io.InputStream.read(InputStream.java:101)
    at com.google.android.apps.gsa.speech.audio.al.run(SourceFile:362)
    at com.google.android.apps.gsa.speech.audio.ak$1.run(SourceFile:471)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at com.google.android.apps.gsa.shared.util.concurrent.a.ak.run(SourceFile:66)
    at com.google.android.apps.gsa.shared.util.concurrent.a.ax.run(SourceFile:139)
    at com.google.android.apps.gsa.shared.util.concurrent.a.ax.run(SourceFile:139)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
    at java.lang.Thread.run(Thread.java:761) 
    at com.google.android.apps.gsa.shared.util.concurrent.a.ad$1.run(SourceFile:85) 

И это весь код моего проекта (почти ничего)

Button rollButton = findViewById(R.id.rollButton);
TextView numberRoll = findViewById(R.id.numberRoll);
SeekBar amountSeek = findViewById(R.id.amountSeek);

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

    rollButton.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v) {
            Random ran = new Random();
            ran.nextInt(amountSeek.getProgress());
            numberRoll.setText(ran.toString());
        }

    });
}

}

Если это правильная ошибка, то похоже, что это проблема с пространством на эмуляторе или чем-то еще.Но я не знаю, как решить эту проблему.

Любая помощь?

1 Ответ

0 голосов
/ 11 октября 2018

Переместить строки ниже в функцию onCreate после определения файла макета

Button rollButton = findViewById(R.id.rollButton);
TextView numberRoll = findViewById(R.id.numberRoll);
SeekBar amountSeek = findViewById(R.id.amountSeek);

Вы вызываете ресурсы перед определением файла ресурсов.Это функция, которая определяет файл ресурсов.

setContentView(R.layout.activity_main);

Ваш код должен быть

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

Button rollButton = findViewById(R.id.rollButton);
TextView numberRoll = findViewById(R.id.numberRoll);
SeekBar amountSeek = findViewById(R.id.amountSeek);

rollButton.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v) {
        Random ran = new Random();
        ran.nextInt(amountSeek.getProgress());
        numberRoll.setText(ran.toString());
    }

});
}

или, если вам нравится,

Button rollButton;
TextView numberRoll;
SeekBar amountSeek;

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

rollButton = findViewById(R.id.rollButton);
numberRoll = findViewById(R.id.numberRoll);
amountSeek = findViewById(R.id.amountSeek);

rollButton.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v) {
        Random ran = new Random();
        ran.nextInt(amountSeek.getProgress());
        numberRoll.setText(ran.toString());
    }

});
}

И убедитесь, чтоВсе идентификаторы установлены в вашем XML-файле.

Просто поставьте точку после R.id.и подождите, пока Android-студия покажет выпадающий список всех идентификаторов из вашего файла ресурсов.Таким образом, вы можете предотвратить опечатки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...