Может ли кто-нибудь объяснить эту проблему? [Дубликат]

Просто используйте двунаправленный кабель AUX и закрепите его в телефоне. Порт для наушников и подключите его к другому каналу аудиоканала «Линейный вход» (или независимо от того, какой вход у вас есть на вашем аудиоинтерфейсе), а затем записывайте этот вход смелостью или любой хороший аудиорекордер.

0
задан Aqib Ahmed 6 July 2018 в 03:53
поделиться

4 ответа

Проблема заключается в этих строках.

final TextView mShowCounter = (TextView) findViewById(R.id.text_view_counter);
final Button button = (Button) findViewById(R.id.toast_button);

Ваше приложение выходит из строя, потому что во время фазы инициализации класса представления еще не существуют. findViewById не будет работать.

Вместо этого вы должны перемещать эти строки внутри onCreate.

1
ответ дан christopher_pk 17 August 2018 в 13:26
поделиться

Вы пытаетесь получить доступ к экземплярам **xml** до того, как они будут созданы, что приводит к сбою приложения.

Чтобы проверить вызванное из-за вашего приложения повреждение, вы можете обратиться к флажку Logcat в свою IDE .

Поместите код создания внутри onCreate() обратного вызова: -

package com.example.android.testapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

final TextView mShowCounter;
final Button button;
private int mCount = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mShowCounter = (TextView) findViewById(R.id.text_view_counter);
    button = (Button) findViewById(R.id.toast_button);
}


public void showToast(View view) {
    Toast toast = Toast.makeText(this, 
R.string.toast_popup,Toast.LENGTH_LONG);
    toast.show();
}

public void counterUp(View view) {
    mCount++;
    if(mShowCounter != null) {
        mShowCounter.setText(Integer.toString(mCount));
    }
}
}
1
ответ дан Mr. Roshan 17 August 2018 в 13:26
поделиться
  • 1
    Большое вам спасибо @MrRoshan за помощь в этом вопросе! – Aqib Ahmed 6 July 2018 в 04:03
  • 2
    Добро пожаловать, босс. !! – Mr. Roshan 6 July 2018 в 04:05

Инициализация вашего компонента должна идти в onCreate(). Поместите ваш

mShowCounter = (TextView) findViewById(R.id.text_view_counter);
button = (Button) findViewById(R.id.toast_button);

внутри onCreate().

1
ответ дан Nilesh Rathod 17 August 2018 в 13:26
поделиться

Android-приложение продолжает сбой в AVD, но правильно построено в Gradle

Поскольку вы выполняете findViewById вне onCreate(), не делая setContentView()

Сделайте findViewById внутри onCreate() метода после setContentView()

Объявите свой TextView mShowCounter и Button button; как Глобальный

КОД ОБРАЗЦА

public class MainActivity extends AppCompatActivity {

 TextView mShowCounter ;
 Button button  ;
private int mCount = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
     mShowCounter = (TextView) findViewById(R.id.text_view_counter);
     button = (Button) findViewById(R.id.toast_button);
}


public void showToast(View view) {
    Toast toast = Toast.makeText(this, 
R.string.toast_popup,Toast.LENGTH_LONG);
    toast.show();
}

public void counterUp(View view) {
    mCount++;
    if(mShowCounter != null) {
        mShowCounter.setText(Integer.toString(mCount));
    }
}
}
2
ответ дан VicJordan 17 August 2018 в 13:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: