2015-01-24 2 views
0

Я получаю следующее исключение в своем коде Android, но я не могу понять это. Я распространил свою деятельность на дому с TabActivity и получаю намерения в ней от MainActivity. В tab3 я передал намерения другому действию, которое начнется с выбора tab3. Данные о намерениях принимаются в этой деятельности. Я проверил его по журналу. Эти полученные данные будут показаны в ListView этого вида деятельности. Но, к сожалению, мое приложение ломается. Любая помощь по этому поводу?
Вот мой логарифм.java.lang.RuntimeException: Не удалось запустить информацию о компоненте активности (Android)

01-24 14:36:34.880: E/AndroidRuntime(1147): FATAL EXCEPTION: main 
01-24 14:36:34.880: E/AndroidRuntime(1147): Process: com.example.app, PID: 1147 
01-24 14:36:34.880: E/AndroidRuntime(1147): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.Home1}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.CameraList}: java.lang.NullPointerException 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.ActivityThread.access$700(ActivityThread.java:135) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.os.Handler.dispatchMessage(Handler.java:102) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.os.Looper.loop(Looper.java:137) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.ActivityThread.main(ActivityThread.java:4998) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at java.lang.reflect.Method.invoke(Method.java:515) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at dalvik.system.NativeStart.main(Native Method) 
01-24 14:36:34.880: E/AndroidRuntime(1147): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.CameraList}: java.lang.NullPointerException 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.ActivityThread.startActivityNow(ActivityThread.java:2019) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:749) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.widget.TabHost.setCurrentTab(TabHost.java:413) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.widget.TabHost.addTab(TabHost.java:240) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at com.example.app.Home1.setNewTab(Home1.java:136) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at com.example.app.Home1.onCreate(Home1.java:83) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.Activity.performCreate(Activity.java:5243) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  ... 11 more 
01-24 14:36:34.880: E/AndroidRuntime(1147): Caused by: java.lang.NullPointerException 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at com.example.app.CameraList.onCreate(CameraList.java:40) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.Activity.performCreate(Activity.java:5243) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140) 
01-24 14:36:34.880: E/AndroidRuntime(1147):  ... 22 more 

И это место, где я использовал вкладки в домашней деятельности ..

String [] names; 
names = intent.getStringArrayExtra("name"); 
    if(tag.equals("tab3")) 
    { 
     Intent ListIntent = new Intent(this, List.class); 
     ListIntent.putExtra("itemName", names); 
     tabSpec.setContent(ListIntent); 
     tabHost.addTab(tabSpec); 
    } 

Деятельность, где я получаю намерение в OnCreate метод:

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.cam_list); 

    //Log.i("cam","List"); 

    Intent intent = getIntent(); 
    name = intent.getStringArrayExtra("camName"); 
    //Log.i("cam", name[1]); 
    url = intent.getStringArrayExtra("url"); 

    list = (ListView)findViewById(R.id.listView); 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.cam_list,R.id.text1, name); 
    list.setAdapter(adapter); 
    /*list.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 

       // ListView Clicked item value 
       String itemValue = (String) list.getItemAtPosition(position); 
       String camUrl = url[position]; 

       // Show Alert 
       Toast.makeText(getApplicationContext(),camUrl,Toast.LENGTH_LONG).show(); 
     } 
    });*/ 
} 
+2

Что такое строка 40 в 'CameraList.java'? – CommonsWare

+0

Вы можете показать ur total oncreate? –

+0

Я показал это..plz проверить его. @CommonsWare на линии40 .. я устанавливаю адаптер. – Fastian

ответ

1

Если вы получаете a NullPointerException на View вы получили от findViewById(), Android сообщает вам, что View не существует. Есть два основных варианта здесь:

  1. View действительно не существует, например, не в состоянии назвать setContentView(), когда вам нужно.

  2. Если вы используете Eclipse, иногда константы R выходят из синхронизации с содержимым вашего файла APK. Чтобы исправить это, выберите «Проект»> «Очистить» в главном меню Eclipse, а затем попробуйте запустить приложение снова. К счастью, я не видел такого поведения с Android Studio (спасибо $DEITY за небольшие льготы ...).

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