음, lib 셜록을 사용하고 있으며 버전 2.3의 안드로이드에서는 문제없이 작동하는 조각을 구현했습니다.하지만 안드로이드 버전 4.0에서 실행하면 NullPointerException
오류가 발생하고 누군가가 도울 수 있으므로 Android 용 프로그래밍에 익숙하지 않습니다. 내 수업과 [오류] [1]이 아래에 있습니다.조각과 Sherlock을 사용하여 버전 4.0에서 버그가 발생했습니다.
public class MainActivity extends SherlockFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Getting an instance of action bar
ActionBar actionBar = getSupportActionBar();
//
// // Enabling Tab Navigation mode for this action bar
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//
// // Enabling Title
actionBar.setDisplayShowTitleEnabled(true);
//
// // Creating Android Tab
Tab tab1 = actionBar.newTab()
.setText("Android")
.setTabListener(new CustomTabListener<AndroidFragment>(this, "android", AndroidFragment.class))
.setIcon(R.drawable.android);
//
// // Adding Android Tab to acton bar
actionBar.addTab(tab1);
//
// Creating Apple Tab
Tab tab2 = actionBar.newTab()
.setText("Apple")
.setTabListener(new CustomTabListener<AppleFragment>(this, "apple", AppleFragment.class))
.setIcon(R.drawable.apple);
// Adding Apple Tab to action bar
actionBar.addTab(tab2);
//
// // Orientation Change Occurred
if(savedInstanceState!=null){
int currentTabIndex = savedInstanceState.getInt("apple");
actionBar.setSelectedNavigationItem(currentTabIndex);
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
int currentTabIndex = getSupportActionBar().getSelectedNavigationIndex();
outState.putInt("tab_index", currentTabIndex);
super.onSaveInstanceState(outState);
}
}
logcat in text format
06-06 04:33:00.496: E/AndroidRuntime(619): FATAL EXCEPTION: main
06-06 04:33:00.496: E/AndroidRuntime(619): java.lang.RuntimeException: Unable to start activity ComponentInfo{in.wptrafficanalyzer.actionbarsherlocknavtabwithimages/in.wptrafficanalyzer.actionbarsherlocknavtabwithimages.MainActivity}: java.lang.NullPointerException
06-06 04:33:00.496: E/AndroidRuntime(619): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)
06-06 04:33:00.496: E/AndroidRuntime(619): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
06-06 04:33:00.496: E/AndroidRuntime(619): at android.app.ActivityThread.access$600(ActivityThread.java:122)
06-06 04:33:00.496: E/AndroidRuntime(619): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
06-06 04:33:00.496: E/AndroidRuntime(619): at android.os.Handler.dispatchMessage(Handler.java:99)
06-06 04:33:00.496: E/AndroidRuntime(619): at android.os.Looper.loop(Looper.java:137)
06-06 04:33:00.496: E/AndroidRuntime(619): at android.app.ActivityThread.main(ActivityThread.java:4340)
06-06 04:33:00.496: E/AndroidRuntime(619): at java.lang.reflect.Method.invokeNative(Native Method)
06-06 04:33:00.496: E/AndroidRuntime(619): at java.lang.reflect.Method.invoke(Method.java:511)
06-06 04:33:00.496: E/AndroidRuntime(619): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-06 04:33:00.496: E/AndroidRuntime(619): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-06 04:33:00.496: E/AndroidRuntime(619): at dalvik.system.NativeStart.main(Native Method)
06-06 04:33:00.496: E/AndroidRuntime(619): Caused by: java.lang.NullPointerException
06-06 04:33:00.496: E/AndroidRuntime(619): at in.wptrafficanalyzer.actionbarsherlocknavtabwithimages.CustomTabListener.onTabSelected(CustomTabListener.java:32)
06-06 04:33:00.496: E/AndroidRuntime(619): at com.actionbarsherlock.internal.app.ActionBarWrapper$TabWrapper.onTabSelected(ActionBarWrapper.java:338)
06-06 04:33:00.496: E/AndroidRuntime(619): at com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:512)
06-06 04:33:00.496: E/AndroidRuntime(619): at com.android.internal.app.ActionBarImpl.addTab(ActionBarImpl.java:441)
06-06 04:33:00.496: E/AndroidRuntime(619): at com.android.internal.app.ActionBarImpl.addTab(ActionBarImpl.java:427)
06-06 04:33:00.496: E/AndroidRuntime(619): at com.actionbarsherlock.internal.app.ActionBarWrapper.addTab(ActionBarWrapper.java:371)
06-06 04:33:00.496: E/AndroidRuntime(619): at in.wptrafficanalyzer.actionbarsherlocknavtabwithimages.MainActivity.onCreate(MainActivity.java:31)
06-06 04:33:00.496: E/AndroidRuntime(619): at android.app.Activity.performCreate(Activity.java:4465)
06-06 04:33:00.496: E/AndroidRuntime(619): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
06-06 04:33:00.496: E/AndroidRuntime(619): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
06-06 04:33:00.496: E/AndroidRuntime(619): ... 11 more
전체 logcat을이 질문에 텍스트로 추가하십시오 - 적어도 "원인"스택을 포함한 전체 스택 추적입니다. –
안녕 Wolfram Rittmeyer는 logcat의 이미지를 넣어,이 기간 동안이 비교에서 오류가 발생 보았다. (savedInstanceState! = null) { int currentTabIndex = savedInstanceState.getInt ("apple"); actionBar.setSelectedNavigationItem (currentTabIndex); } 여전히 SelectedNavigationItem을 설정하는 다른 방법을 생각할 수 없습니다. 이미 필요합니다. –
앞으로 : 실제로 logcat을 텍스트로 게시하십시오. ** 예외를 모두 ** 추가하십시오. 스크린 샷은 흥미로운 부분이 시작되는 곳에서 끝납니다. –