#java #android #stack-trace #google-play-console #crash-reports
Вопрос:
Я получаю сведения о сбое, как следует из отчета о сбое консоли Google Play.
java.lang.NullPointerException:
at com.csa.bluetoothremote.MainActivity$11.onClick (MainActivity.java:62)
at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage (AlertController.java:37)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:246)
at android.app.ActivityThread.main (ActivityThread.java:8506)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
Но я не могу понять, что означает $11 в MainActivity$11 и 62 из (MainActivity.java:62) во 2-й строке выше. Я думал, 62 означает номер строки. Но в моем коде есть некоторые импортные данные в строке 62. Так что же означают эти цифры? Я хочу знать, как правильно отобразить эти данные в моем исходном коде и найти, где именно произошла ошибка.
Проблема, как я догадываюсь, где-то здесь. Но я хочу знать точное место
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.add_widget_dialog, null);
final RelativeLayout mainViewLayout = view.findViewById(R.id.mainViewLayout);
ImageButton btnIcon = view.findViewById(R.id.btn_widget_icon);
final ImageButton mainImgBtn = view.findViewById(R.id.mainImgBtn);
Button btnColor = view.findViewById(R.id.btn_widget_color);
final Button mainTxtBtn = view.findViewById(R.id.mainTxtBtn);
final EditText txtId = view.findViewById(R.id.txt_widget_id);
final EditText txtDown = view.findViewById(R.id.txt_down);
final EditText txtUp = view.findViewById(R.id.txt_up);
final Switch swchIsTgl = view.findViewById(R.id.swch_isTgl);
btnColor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectColor(values, v, mainImgBtn, mainTxtBtn, mainViewLayout);
}
});
btnIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectIcon(values, v, mainImgBtn, mainTxtBtn, mainViewLayout);
}
});
AlertDialog.Builder dBld = new AlertDialog.Builder(this);
dBld.setView(view);
dBld.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
...
}
});
dBld.setNegativeButton("Cancel", null);
AlertDialog dlg = dBld.create();
dlg.show();
Комментарии:
1. Пожалуйста, предоставьте свой код для основной активности
2. $11 относится к внутреннему классу, предположительно вашему обработчику кликов. Посмотрите на номер строки.
3. @Рустам извини, в моем основном аккаунте около 1800 строк. Но я думаю, что проблема в определенном моменте. Я обновлю свой вопрос этой частью. Но номера строк не равны этому. строка № 62 содержит некоторые импортированные библиотеки.
4. это определенно связано с предупреждением , пожалуйста , проверьте свою кнопку внутри вашего пользовательского класса предупреждений и проверьте жизненный цикл предупреждений , возможно, вы вызываете положительную/отрицательную кнопку, но предупреждение было сброшено как «нулевое», затем также проверьте proguard
5. попробуйте переместить объект оповещения как локальный, а затем инициализировать его методом onCreate()