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:

  • Android ViewPager con le immagini: perdita di memory / app si blocca
  • AdMob non carica gli annunci in applicazioni ioniche / angolari
  • Le migliori pratiche per l'analisi XML
  • Permessi di runtime Android sulle versioni android sotto M?
  • ECCEZIONE DI LIVELLO DI FORMAGGIO UNEXPECTED aggiungendo un nuovo module al progetto Android Studio
  • Lo zoom della camera non funziona
  •  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!

  • encrypt sqlite database Android:
  • L'assistente IAB non è impostato. Imansible eseguire operazioni: queryInventory
  • Android, setonclicklistner per arrays generato dynamicmente di textviews
  • Come posso get i dati grezzi GPS (pseudo gamma dei satelliti)?
  • Android: Come utilizzare la webcam in emulatore?
  • Selezionare più file con Intent.ACTION_GET_CONTENT
  • 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.