2013-12-17 5 views
0

Я использую AndroidAnnotations в своем приложении, и когда я пытаюсь ввести дополнительные намерения и начать действие, в котором я использую AndroidAnnotations, я всегда получаю ошибку времени выполнения. Когда я прекращаю использование AndroidAnnotations, все работает нормально.Ошибка выполнения с AndroidAnnotations

Вот код, который начинает свою деятельность:

public class TimeAndDateShower extends Activity { 
//some code 

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.time_and_date_shower); 
     //some code 
     setButtonListener(); 

    } 
public void setButtonListener() 
    { 
     Button button = (Button) findViewById(R.id.button1); 
     button.setOnClickListener(new OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       Intent intent = new Intent(TimeAndDateShower.this, DateChooser_.class); 
       intent.putExtra("SSID", network); 
       startActivity(intent); 
       TimeAndDateShower.this.finish(); 
      } 
     }); 
    } 
} 

Вот как DateChooser.java выглядит следующим образом:

@EActivity(R.layout.date_chooser) 
public class DateChooser extends Activity { 

    public String network; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //setContentView(R.layout.date_chooser); 

     setNetworkName(); 
     //some code 
    } 

    public void setNetworkName() 
    { 
     TextView textView = (TextView)findViewById(R.id.textView4); 
     network = this.getIntent().getStringExtra("SSID");//using an extra 
     textView.setText(network); 
    } 

} 

В AndroidManifest.xml Заявляю DateChooser деятельность, как это:

name="com.componentix.imwizard.DateChooser_" android:screenOrientation="landscape"> </activity> 

И вот журнал моей ошибки времени выполнения:

12-17 11:51:32.267: E/AndroidRuntime(3234): FATAL EXCEPTION: main 
12-17 11:51:32.267: E/AndroidRuntime(3234): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.componentix.imwizard/com.componentix.imwizard.DateChooser_}: java.lang.NullPointerException 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at android.app.ActivityThread.access$600(ActivityThread.java:130) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at android.os.Looper.loop(Looper.java:137) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at android.app.ActivityThread.main(ActivityThread.java:4745) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at java.lang.reflect.Method.invoke(Method.java:511) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at dalvik.system.NativeStart.main(Native Method) 
12-17 11:51:32.267: E/AndroidRuntime(3234): Caused by: java.lang.NullPointerException 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at com.componentix.imwizard.DateChooser.setNetworkName(DateChooser.java:30) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at com.componentix.imwizard.DateChooser.onCreate(DateChooser.java:22) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at com.componentix.imwizard.DateChooser_.onCreate(DateChooser_.java:24) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at android.app.Activity.performCreate(Activity.java:5008) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
12-17 11:51:32.267: E/AndroidRuntime(3234):  ... 11 more 
+2

раскомментировать 'setContentView (R.layout.date_chooser);' – Raghunandan

+1

У вас есть NPE согласно вашему бревну, так запустите свой отладчик (добавьте точку останова в 'setNoteworkName()' в строке 30) и проверьте, какой объект недоступен. Вы можете легко исправить эту проблему (или предоставить более подробную информацию, если что-то происходит) – Veger

+0

@ Raghunandan Почему мне нужно это делать? Я думал, что уже задал Content View с @EActivity (R.layout.date_chooser) –

ответ

4

Я думаю, ваш NPE находится на textView, и это вполне нормально: вставка класса выполняется в сгенерированном классе после исходного метода oncreate(). Кроме того, вы должны позволить AA вводить дополнительные и виды для вас. Просто обновите свой класс, как это:

@EActivity(R.layout.date_chooser) 
public class DateChooser extends Activity { 

    @Extra("SSID") 
    String network; 

    @ViewById(R.id.textView4) 
    TextView textView; 

    @AfterViews 
    void init() { 
     textView.setText(network); 
     //some code 
    } 

} 

Вы должны действительно присмотреться at the wiki

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