Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android空指针异常onCreate_Java_Android_Xml_Nullpointerexception_Oncreate - Fatal编程技术网

Java Android空指针异常onCreate

Java Android空指针异常onCreate,java,android,xml,nullpointerexception,oncreate,Java,Android,Xml,Nullpointerexception,Oncreate,所以我只是在学习编写android应用程序,还没有什么特别的东西,主要是想看看它们是如何工作的。根据我找到的一个教程,我尝试使用操作栏中的选项卡进行操作,但在应用程序启动之前,我抛出了一个空指针异常 代码如下: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mai

所以我只是在学习编写android应用程序,还没有什么特别的东西,主要是想看看它们是如何工作的。根据我找到的一个教程,我尝试使用操作栏中的选项卡进行操作,但在应用程序启动之前,我抛出了一个空指针异常

代码如下:

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

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

    viewPager.setAdapter(mAdapter);
    actionBar.setHomeButtonEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    for(String tab_names : tabs)
    {
        actionBar.addTab(actionBar.newTab().setText(tab_names).setTabListener(this));
    }

    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener()
    {
        @Override
        public void onPageSelected(int position)
        {
            actionBar.setSelectedNavigationItem(position);
        }

        @Override
        public void onPageScrolled(int arg0,float arg1,int arg2)
        {

        }

        @Override
        public void onPageScrollStateChanged(int arg0)
        {

        }
    });
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) 
{

    View rootView = inflater.inflate(R.layout.web_fragment, container, false);

    return rootView;
}
onCreateView还有另外两个类,它们的布局不同,但在其他方面完全相同。以下是xml,第一个是片段的主xml,第二个是片段的xml:

<android.support.v4.view.ViewPager    xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>



<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:orientation="vertical"
android:background="#ff8400">

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="@string/hello_world"
    android:textSize="20sp"
    android:layout_centerInParent="true"/>

我似乎无法找出引发抛出异常的原因。我似乎也不能让logcat导出到日志文件,所以我也会尝试在这里得到它

Logcat

 02-28 01:36:42.431: I/Process(1629): Sending signal. PID: 1629 SIG: 9

   02-28 01:37:27.401: D/AndroidRuntime(1668): Shutting down VM

   02-28 01:37:27.401: W/dalvikvm(1668): threadid=1: thread exiting with uncaught exception (group=0xb4a1fb90)

   02-28 01:37:27.471: E/AndroidRuntime(1668): FATAL EXCEPTION: main

   02-28 01:37:27.471: E/AndroidRuntime(1668): Process: com.example.tolerablenausea, PID: 1668

   02-28 01:37:27.471: E/AndroidRuntime(1668): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.tolerablenausea/com.example.tolerablenausea.MainActivity}: java.lang.NullPointerException

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2102)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at android.app.ActivityThread.access$700(ActivityThread.java:135)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at android.os.Handler.dispatchMessage(Handler.java:102)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at android.os.Looper.loop(Looper.java:137)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at android.app.ActivityThread.main(ActivityThread.java:4998)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at java.lang.reflect.Method.invokeNative(Native Method)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at java.lang.reflect.Method.invoke(Method.java:515)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
   02-28 01:37:27.471: E/AndroidRuntime(1668):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at dalvik.system.NativeStart.main(Native Method)

   02-28 01:37:27.471: E/AndroidRuntime(1668): Caused by: java.lang.NullPointerException

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at android.content.ContextWrapper.getResources(ContextWrapper.java:89)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:78)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at android.content.Context.getString(Context.java:343)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at com.example.tolerablenausea.MainActivity.<init>(MainActivity.java:29)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at java.lang.Class.newInstanceImpl(Native Method)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at java.lang.Class.newInstance(Class.java:1208)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at android.app.Instrumentation.newActivity(Instrumentation.java:1061)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2093)

   02-28 01:37:27.471: E/AndroidRuntime(1668):  ... 11 more
02-28 01:36:42.431:I/进程(1629):发送信号。PID:1629信号:9
02-28 01:37:27.401:D/AndroidRuntime(1668):关闭虚拟机
02-28 01:37:27.401:W/dalvikvm(1668):threadid=1:线程以未捕获异常退出(组=0xb4a1fb90)
02-28 01:37:27.471:E/AndroidRuntime(1668):致命异常:主
02-28 01:37:27.471:E/AndroidRuntime(1668):进程:com.example.tolerablenausea,PID:1668
02-28 01:37:27.471:E/AndroidRuntime(1668):java.lang.RuntimeException:无法实例化活动组件信息{com.example.tolerablenausea/com.example.tolerablenausea.MainActivity}:java.lang.NullPointerException
02-28 01:37:27.471:E/AndroidRuntime(1668):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2102)
02-28 01:37:27.471:E/AndroidRuntime(1668):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
02-28 01:37:27.471:E/AndroidRuntime(1668):在android.app.ActivityThread.access$700(ActivityThread.java:135)
02-28 01:37:27.471:E/AndroidRuntime(1668):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
02-28 01:37:27.471:E/AndroidRuntime(1668):在android.os.Handler.dispatchMessage(Handler.java:102)上
02-28 01:37:27.471:E/AndroidRuntime(1668):在android.os.Looper.loop(Looper.java:137)上
02-28 01:37:27.471:E/AndroidRuntime(1668):位于android.app.ActivityThread.main(ActivityThread.java:4998)
02-28 01:37:27.471:E/AndroidRuntime(1668):位于java.lang.reflect.Method.Invokenactive(本机方法)
02-28 01:37:27.471:E/AndroidRuntime(1668):位于java.lang.reflect.Method.invoke(Method.java:515)
02-28 01:37:27.471:E/AndroidRuntime(1668):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
02-28 01:37:27.471:E/AndroidRuntime(1668):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
02-28 01:37:27.471:E/AndroidRuntime(1668):在dalvik.system.NativeStart.main(本机方法)
02-28 01:37:27.471:E/AndroidRuntime(1668):由以下原因引起:java.lang.NullPointerException
02-28 01:37:27.471:E/AndroidRuntime(1668):位于android.content.ContextWrapper.getResources(ContextWrapper.java:89)
02-28 01:37:27.471:E/AndroidRuntime(1668):在android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:78)
02-28 01:37:27.471:E/AndroidRuntime(1668):位于android.content.Context.getString(Context.java:343)
02-28 01:37:27.471:E/AndroidRuntime(1668):位于com.example.tolerablenausea.MainActivity。(MainActivity.java:29)
02-28 01:37:27.471:E/AndroidRuntime(1668):位于java.lang.Class.newInstanceImpl(本机方法)
02-28 01:37:27.471:E/AndroidRuntime(1668):位于java.lang.Class.newInstance(Class.java:1208)
02-28 01:37:27.471:E/AndroidRuntime(1668):在android.app.Instrumentation.newActivity(Instrumentation.java:1061)上
02-28 01:37:27.471:E/AndroidRuntime(1668):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2093)
02-2801:37:27.471:E/AndroidRuntime(1668):。。。还有11个
我认为getActionbar()方法返回空值,您可以按照下面提供的链接进行操作

,

这可能对你有帮助。
如果对您有帮助,请将其标记为答案。

如果使用了for each循环,则无法看到正在初始化的“选项卡”。如果它为空,并且其中没有“字符串”

检查:
如果您的android:minSdkVersion设置为8(API-8),则它不提供getActionBar()(仅在API-11之后)

如果lint警告被抑制,则不会出现编译时错误

尝试-向后兼容性有帮助

如果你想查一下, 看看这是否有效:

if (android.os.Build.VERSION.SDK_INT >= 11)
    getActionBar().setDisplayHomeAsUpEnabled(true);

显示日志猫请
for(字符串选项卡名称:选项卡)
选项卡来自何处?在哪一行出现空指针异常?发帖线路。不确定线路,因为logcat似乎没有告诉我发生了什么。选项卡来自一个私有字符串数组,该数组作为classcheck you版本的一部分初始化。它应该>=11My minSdkVersion目前为14,targetSdk为19@user3363625请张贴日志以准确跟踪错误