2013-12-04 2 views
0

Это не говорит, что у него есть какая-либо ошибка, только что, когда я пытаюсь запустить его, он останавливается и выводит следующее сообщение:Android приложения перестает работать

«К сожалению, LifeSaver остановилось» ,

activity_saver.xml:

<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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".Saver" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:background="@drawable/circle" 
     android:onClick="sendMessage" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_alignRight="@+id/button1" 
     android:layout_marginTop="68dp" 
     android:text="Button" 
     android:onClick="schimba" /> 

</RelativeLayout> 

Saver.java:

public class Saver extends Activity { 

    Button panica = (Button) findViewById(R.id.button1); 
    Button b; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_saver); 
     b = (Button) findViewById(R.id.button2); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.saver, menu); 
     return true; 
    } 

    public void sendMessage(View v) { 
     panica.setBackgroundColor(Color.BLUE); 
    } 

    public void schimba (View v){ 
     Intent i = new Intent (Saver.this, MainActivity.class); 
     startActivity(i); 
    } 
} 

activity_main.xml:

<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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/hello_world" /> 

</RelativeLayout> 

MainActivity.java:

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.saver, menu); 
     return true; 
    } 
} 

activity_main.xml:

<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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/hello_world" /> 

</RelativeLayout> 
+2

Ваши ошибки будут отображаться в LogCat. – nhgrif

+0

Он говорит: «at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2097)« Я этого не понимаю .... – user3063909

+3

сообщение целиком logcat –

ответ

2

В настоящее время вы инициализации button1 перед установкой макета для Saver деятельности так двигаться инициализацию Просмотров после setContentView деятельности как:

Button b,panica; //<<< Declare here 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_saver); 
    b = (Button) findViewById(R.id.button2); 
    panica = (Button) findViewById(R.id.button1); //<< initialize here 
} 

, а также убедитесь, что у вас есть зарегистрированы Обе деятельности в AndroidManifest.xml

+0

спасибо, это сработало !! : D Я не думал, что такая маленькая вещь может сделать такой беспорядок – user3063909

1
Button panica = (Button) findViewById(R.id.button1); 
Button b; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_saver); 
    b = (Button) findViewById(R.id.button2); 
} 

Вы не можете инициализировать panica вне метода onCreate (ваш макет еще не установлен).

Так изменить этот код следующим образом:

Button panica; 
Button b; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_saver); 
    b = (Button) findViewById(R.id.button2); 
    panica = (Button) findViewById(R.id.button1); 
} 
Смежные вопросы