2015-06-03 4 views
0

У меня возникла проблема с запуском приложения в эмуляторе. Каждый раз, когда я пытаюсь запустить приложение, он дает мне сообщение «К сожалению, привет перестало работать». Я прошел через ответ на аналогичную проблему, но ни один из них не помог me.Below мой код:К сожалению приложение остановлено в эмуляторе Android

Главная activity.java

package com.example.hello; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 


public class MainActivity extends Activity { 

    private Button btn1 = (Button)findViewById(R.id.button1); 
    private Button btn2=(Button)findViewById(R.id.button2); 
    private TextView ans=(TextView)findViewById(R.id.answer); 

    private EditText first =(EditText)findViewById(R.id.firstnotxt); 
    private EditText second =(EditText)findViewById(R.id.firstnotxt); 

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


    private void listener() 
    { 
     btn1.setOnClickListener(new OnClickListener() 
     { 
      public void onClick(View view) 
      { 
       String txt1=first.getText().toString(); 
       int no1=Integer.parseInt(txt1); 
       String txt2=second.getText().toString(); 
       int no2=Integer.parseInt(txt2); 

       int add=no1+no2; 

       ans.setText(""+add); 


       } 
     } 
     ); 

     btn2.setOnClickListener(new View.OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       String txt1=first.getText().toString(); 
       int no1=Integer.parseInt(txt1); 
       String txt2=second.getText().toString(); 
       int no2=Integer.parseInt(txt2); 


       int sub=no1-no2; 

       ans.setText(""+sub); 

       } 
     } 
     ); 
    } 


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

     } 

Layout (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="com.example.hello.MainActivity" > 

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

     <TextView 
     android:id="@+id/firstno" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/textView2" 
     android:text="@string/FirstNumber" 
     android:textColor="#ff0000" 
     android:textSize="15sp" /> 


    <EditText 
     android:id="@+id/firstnotxt" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/textView2" 
     android:layout_toEndOf="@+id/firstno" 
     android:layout_toRightOf="@+id/firstno" 
     android:inputType="numberDecimal" 
     /> 



    <TextView 
     android:id="@+id/secondno" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/firstno" 
     android:text="@string/SecondNumber" 
     android:textColor="#ff0000" 
     android:textSize="15sp" /> 

    <EditText 
     android:id="@+id/secondnotxt" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/secondno" 
     android:layout_alignBottom="@+id/secondno" 
     android:layout_toEndOf="@+id/firstno" 
     android:layout_toRightOf="@+id/secondno" 
     android:ems="10" 
     android:inputType="numberDecimal" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/secondno" 
     android:clickable="true" 
     android:text="@string/Add" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/button1" 
     android:clickable="true" 
     android:text="@string/Subtract" /> 

    <TextView 
     android:id="@+id/answer" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/button2" 
     android:layout_marginTop="54dp" /> 

</RelativeLayout> 

AndroidManifest. XML

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.hello" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="21" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

LogCat

06-03 05:00:10.356: E/Trace(2903): error opening trace file: No such file or directory (2) 
06-03 05:00:10.818: D/AndroidRuntime(2903): Shutting down VM 
06-03 05:00:10.818: W/dalvikvm(2903): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 
06-03 05:00:10.916: E/AndroidRuntime(2903): FATAL EXCEPTION: main 
06-03 05:00:10.916: E/AndroidRuntime(2903): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.hello/com.example.hello.MainActivity}: java.lang.NullPointerException 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at android.os.Looper.loop(Looper.java:137) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at android.app.ActivityThread.main(ActivityThread.java:5041) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at java.lang.reflect.Method.invoke(Method.java:511) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at dalvik.system.NativeStart.main(Native Method) 
06-03 05:00:10.916: E/AndroidRuntime(2903): Caused by: java.lang.NullPointerException 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at android.app.Activity.findViewById(Activity.java:1839) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at com.example.hello.MainActivity.<init>(MainActivity.java:16) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at java.lang.Class.newInstanceImpl(Native Method) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at java.lang.Class.newInstance(Class.java:1319) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at android.app.Instrumentation.newActivity(Instrumentation.java:1054) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 
06-03 05:00:10.916: E/AndroidRuntime(2903):  ... 11 more 
06-03 05:00:14.086: I/Process(2903): Sending signal. PID: 2903 SIG: 9 
06-03 05:01:01.957: E/Trace(2965): error opening trace file: No such file or directory (2) 
06-03 05:01:02.247: D/AndroidRuntime(2965): Shutting down VM 
06-03 05:01:02.296: W/dalvikvm(2965): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 
06-03 05:01:02.336: E/AndroidRuntime(2965): FATAL EXCEPTION: main 
06-03 05:01:02.336: E/AndroidRuntime(2965): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.hello/com.example.hello.MainActivity}: java.lang.NullPointerException 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at android.os.Looper.loop(Looper.java:137) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at android.app.ActivityThread.main(ActivityThread.java:5041) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at java.lang.reflect.Method.invoke(Method.java:511) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at dalvik.system.NativeStart.main(Native Method) 
06-03 05:01:02.336: E/AndroidRuntime(2965): Caused by: java.lang.NullPointerException 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at android.app.Activity.findViewById(Activity.java:1839) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at com.example.hello.MainActivity.<init>(MainActivity.java:16) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at java.lang.Class.newInstanceImpl(Native Method) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at java.lang.Class.newInstance(Class.java:1319) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at android.app.Instrumentation.newActivity(Instrumentation.java:1054) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 
06-03 05:01:02.336: E/AndroidRuntime(2965):  ... 11 more 
+0

попробовать поставить некоторые трассировки стека и кусок кода, чтобы узнать, Что ваша проблема –

+0

Как приложение выглядит? Можете ли вы хотя бы предоставить соответствующие действия и файлы xml? – Gosu

+2

покажите свой код и adb-журнал –

ответ

1

Сначала вам нужно сделать setContentView(), а затем вы получите компоненты для назначения или добавления слушателей.
Попробуйте как этого

public class MainActivity extends Activity { 

private Button btn1, btn2; 
private TextView ans; 
private EditText first, second; 

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

    btn1 = (Button)findViewById(R.id.button1); 
    btn2 = (Button)findViewById(R.id.button2); 
    ans = (TextView)findViewById(R.id.answer); 

    first = (EditText)findViewById(R.id.firstnotxt); 
    second = (EditText)findViewById(R.id.firstnotxt); 

    listener(); 
} 
+0

Простите, но это не помогло –

+0

сейчас, ,,, у меня есть отредактировал мой ответ. –

+0

Обновите свой ответ. Если вы уже объявили глобальные переменные, тогда вам не нужно снова объявлять в 'onCreate()' – Piyush

0

Вы не можете инициализировать свой Views перед onCreate() методом в противном случае он будет бросать исключения нулевого указателя, потому что сначала он будет нулевым, так как вид всегда инициализировать в onCreate() методе .. Из-за первых super.onCreate() вызовов , Так что вам нужно, чтобы переместить все это

private Button btn1 = (Button)findViewById(R.id.button1); 
    private Button btn2=(Button)findViewById(R.id.button2); 
    private TextView ans=(TextView)findViewById(R.id.answer); 

    private EditText first =(EditText)findViewById(R.id.firstnotxt); 
    private EditText second =(EditText)findViewById(R.id.firstnotxt); 

после setContentView(R.layout.activity_main);

+0

Спасибо, что помогло –

Смежные вопросы