2015-05-15 2 views
-3

Я новичок в Android Studio. Теперь создаем вкладку с помощью салфетки. Во время выполнения я получаю ошибку, например, Fatal Execption.Android: FATAL EXCEPTION: main

Logcat

2497-2497/com.polus.binil.test E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.polus.binil.test, PID: 2497 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.polus.binil.test/com.polus.binil.test.MainActivity}: java.lang.NullPointerException 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
     at android.app.ActivityThread.access$800(ActivityThread.java:135) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:136) 
     at android.app.ActivityThread.main(ActivityThread.java:5001) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
     at dalvik.system.NativeStart.main(Native Method) 
      Caused by: java.lang.NullPointerException 
     at com.polus.binil.test.MainActivity.onCreate(MainActivity.java:42) 
     at android.app.Activity.performCreate(Activity.java:5231) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148 

Здесь представлен MainActivity

MainActivity

import android.os.Bundle; 
    import android.support.v4.app.FragmentActivity; 
    import android.support.v4.app.FragmentTransaction; 
    import android.support.v4.view.ViewPager; 
    import android.support.v7.app.ActionBar; 


    public class MainActivity extends FragmentActivity implements ActionBar.TabListener { 


private ViewPager viewPager; 
private TabsPagerAdapter mAdapter; 
private android.app.ActionBar actionBar; 


// Tab titles 
private String[] tabs = {"Top Rated", "Games", "Movies"}; 

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

    // Initilization 
    viewPager = (ViewPager) findViewById(R.id.pager); 
    actionBar = getActionBar(); 
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); 

viewPager.setAdapter(mAdapter); 
actionBar.setHomeButtonEnabled(true); 
actionBar.setNavigationMode(android.app.ActionBar.NAVIGATION_MODE_TABS); 



    // Adding Tabs 
    for (String tab_name : tabs) { 
     actionBar.addTab(actionBar.newTab().setText(tab_name) 
       .setTabListener((android.app.ActionBar.TabListener) this)); 

    } 

    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageScrolled(int i, float v, int i2) { 

     } 

     @Override 
     public void onPageSelected(int position) { 
      actionBar.setSelectedNavigationItem(position); 
     } 

     @Override 
     public void onPageScrollStateChanged(int i) { 

     } 
    }); 

} 

@Override 
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { 
    viewPager.setCurrentItem(tab.getPosition()); 
} 

@Override 
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { 

} 

@Override 
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { 

} 
} 

Может ли один пожалуйста, помогите решить эту проблему

+0

NullPointerException в MainActivity.java линии № 42 – JafarKhQ

+0

Какая линия MainActivity.java:42 –

ответ

1
actionBar = getActionBar(); 

Это будет, очевидно, будет нулевым, потому что вы расширяете FragmentActivity здесь, который не поддерживает баров действий. Заменить его на ActionBarActivity и сменить getActionBar() на getSupportActionBar().

+0

Спасибо, его работы ... –

+1

@BinilSurendran пожалуйста принять один из ответов, чем. :) – aga

+0

, как вы говорите, я меняю код, теперь он работает. –

0

Возможны две причины:

1 - идентификатор ViewPager в activity_main.xml не является pager, поэтому viewpager - null. Проверьте правильность идентификатора.

2 - getActionBar() возвращает null. Проверьте actionBar имеет нулевое значение, перед вызовом actionBar.setHomeButtonEnabled(true);

0

Попробуйте заменить actionBar = getActionBar(); с actionBar = getSupportActionBar(); Я думаю, что здесь getActionBar() является нулевым