java.lang.IllegalStateException: imansible trovare il metodo onClick del button in Android Studio

Sto costruendo una app denominata Ping in Android Studio. Finora le mie attività sono LoginActivity ProfileActivity e Timeline. Il mio problema è che un button nel layout corrispondente all'attività Timeline ha un metodo onClick che non funziona. Quando viene cliccato sul button, l'emulatore fornisce il messaggio "Unfortunatley, Ping è interrotto". Stavo definendo i pulsanti ei methods OnClick allo stesso modo che ho per altri pulsanti le cui funzioni funzionano, proprio questo non sembra funzionare. Ricevo un errore dicendo che il metodo non può essere trovato, ma ho scritto il metodo nell'attività corrispondente. Ecco il logcat:

04-30 10:40:08.727 2075-2075/com.ping_social.www.ping E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.ping_social.www.ping, PID: 2075 java.lang.IllegalStateException: Could not find a method onProfilePress(View) in the activity class android.view.ContextThemeWrapper for onClick handler on view class android.widget.Button with id 'profileButton' at android.view.View$1.onClick(View.java:4007) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5257) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.NoSuchMethodException: onProfilePress [class android.view.View] at java.lang.Class.getMethod(Class.java:664) at java.lang.Class.getMethod(Class.java:643) at android.view.View$1.onClick(View.java:4000)             at android.view.View.performClick(View.java:4780)             at android.view.View$PerformClick.run(View.java:19866)             at android.os.Handler.handleCallback(Handler.java:739)             at android.os.Handler.dispatchMessage(Handler.java:95)             at android.os.Looper.loop(Looper.java:135)             at android.app.ActivityThread.main(ActivityThread.java:5257)             at java.lang.reflect.Method.invoke(Native Method)             at java.lang.reflect.Method.invoke(Method.java:372)             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

Ecco la mia class di attività Timeline:

  • Firebase onMessageReceived non chiamato quando l'applicazione è intriggers
  • Come simulare un clic del button utilizzando il codice?
  • Creazione di layout diversi per il telefono Android e tablet
  • Singolo intento di lasciare che l'utente prenda l'image o scegli l'image dalla galleria in Android
  • Come get l'altezza di un button per adattarsi all'altezza di un altro elemento?
  • Come faccio a creare una preferenza con un EditTextPreference e un button?
  •  package com.ping_social.www.ping; import android.content.Intent; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; public class TimeLine extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_time_line); /*print log that shows we've got here*/ Log.i("LoginActivity", "Layout has been set"); } @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_time_line, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } /*called when user presses the Log in button*/ public void onProfilePress(View view){ /*Log the button press*/ Log.i("TimeLine", "Has reached the onProfilePress method"); Intent intent = new Intent(this, ProfileActivity.class); startActivity(intent); } } 

    Ecco il mio codice xml di layout della Timeline:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" android:theme="@style/GeneralTheme" tools:context="com.ping_social.www.ping.TimeLine"> <TextView android:text="@string/no_pings" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" android:layout_centerVertical="true" android:layout_centerHorizontal="true" android:textIsSelectable="false" android:textColor="@color/PING_TOP_BAR_RED" android:id="@+id/textView4" /> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="60dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/timeline_button" android:id="@+id/timelineButton" android:textColor="@color/PING_TOP_BAR_RED" android:layout_weight="1"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/new_ping_button" android:id="@+id/newPingButton" android:layout_weight="1"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/activity_button" android:id="@+id/activityButton" android:layout_weight="1"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/profile_button" android:id="@+id/profileButton" android:layout_weight="1" android:onClick="onProfilePress"/> </LinearLayout> </RelativeLayout> 

    Sono abbastanza positivo che non esistono problemi di ortografia e non esistono altri pulsanti che condividono lo stesso ID oi methods che condividono lo stesso nome. È stato bloccato su questo per alcuni giorni, qualsiasi aiuto è molto apprezzato!

  • Iniettare Javascript in una visualizzazione Web al di fuori dell'evento OnPageFinished (utilizzando DataPicker per impostare una data su un input di un WebView)
  • È ansible eseguire continuamente il servizio in piattaforma android anche dopo aver bloccato il dispositivo?
  • Come utilizzare il metodo registerReceiver?
  • Prestazioni Android funnel
  • Colbind l'applicazione android a Microsoft SQL Server 2008
  • MediaCodec con ingresso Surface: Produzione di output chunked
  • One Solution collect form web for “java.lang.IllegalStateException: imansible trovare il metodo onClick del button in Android Studio”

    Ok, così ho fatto la mia prova. Ho messo insieme un layout relativo di base con un solo button, metto in esso android:theme="@style/AppTheme" e un button app si è bloccato con lo stesso errore. Poi ho rimosso android:theme attributo a android:theme – evento onclick sparato come dovrebbe.

    AppCompatActivity stesso modo è avvenuto quando ho usato AppCompatActivity invece di AppCompatActivity ormai obsoleto.

    È difficile per me dire perché non funziona con android:theme . È una delle funzionalità di Lollipop, ma ho cercato di lanciare l'emulatore API 5.0. L'articolo afferma che attualmente questo attributo è supportto solo per android.support.v7.widget.Toolbar .

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.