Кнопки onClick Force закрывает приложение на устройстве Android 4.1Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Кнопки onClick Force закрывает приложение на устройстве Android 4.1

Сообщение Anonymous »

У меня есть приложение с простым макетом и одной кнопкой. Я попытался реализовать onClick, используя AppCompatButton и AppCompatImageButton. Но когда я запускаю его на устройстве Android 4.1 и нажимаю на него, мое приложение вылетает (к сожалению, приложение остановлено).

Я проделал тот же тест на Устройство Android 5.0, и оно работало. Затем попробовал то же самое, но вместо этого использовал Button и ImageButton, и это сработало для обоих.

Эти кнопки не имеют ни стиля, ни темы. Просто голые кнопки размером 30 x 30 dp. Вот код:

activity_main.xml
MainActivity.java

Код: Выделить всё

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Set ActionBar to Toolbar
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

}

public void btnClick(View v) {
// DO SOMETHING
}
}
На данный момент я использую ImageButton, но не знаю, повлечет ли это за собой какие-либо проблемы совместимости с какой-либо версией Android (я поддерживаю API 16+).

Спасибо.

РЕДАКТИРОВАТЬ: Вот что показывает LogCat, когда с помощью AppCompatButton:

Код: Выделить всё

10-03 17:01:36.706 1313-1313/com.example.testappcompatbutton D/AndroidRuntime: Shutting down VM
10-03 17:01:36.706 1313-1313/com.example.testappcompatbutton W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0xa62ba288)

--------- beginning of /dev/log/system
10-03 17:01:36.734 1313-1313/com.example.testappcompatbutton E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not find a method btnClick(View) in the activity class androidx.appcompat.widget.TintContextWrapper for onClick handler on view class androidx.appcompat.widget.AppCompatButton with id 'btn'
at android.view.View$1.onClick(View.java:3578)
at android.view.View.performClick(View.java:4084)
at android.view.View$PerformClick.run(View.java:16966)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoSuchMethodException: btnClick [class android.view.View]
at java.lang.Class.getConstructorOrMethod(Class.java:460)
at java.lang.Class.getMethod(Class.java:915)
at android.view.View$1.onClick(View.java:3571)
at android.view.View.performClick(View.java:4084) 
at android.view.View$PerformClick.run(View.java:16966) 
at android.os.Handler.handleCallback(Handler.java:615) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4745) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
at dalvik.system.NativeStart.main(Native Method) 
Похоже, он не может найти метод onClick.

Подробнее здесь: https://stackoverflow.com/questions/581 ... 4-1-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»