Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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/231.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
Android/Java NullPointerException_Java_Android - Fatal编程技术网

Android/Java NullPointerException

Android/Java NullPointerException,java,android,Java,Android,所以,我有点不在行,所以我需要一些帮助。我试图制作一个应用程序,但却不断收到NullPointerException。日志: 05-03 18:48:11.283: E/AndroidRuntime(8187): FATAL EXCEPTION: main 05-03 18:48:11.283: E/AndroidRuntime(8187): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ir

所以,我有点不在行,所以我需要一些帮助。我试图制作一个应用程序,但却不断收到NullPointerException。日志:

05-03 18:48:11.283: E/AndroidRuntime(8187): FATAL EXCEPTION: main
05-03 18:48:11.283: E/AndroidRuntime(8187): java.lang.RuntimeException:     Unable to start activity ComponentInfo{com.ironcake.jsynxs/com.ironcake.jsynxs.MainActivity}: java.lang.NullPointerException
05-03 18:48:11.283: E/AndroidRuntime(8187):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at android.app.ActivityThread.access$700(ActivityThread.java:150)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at android.os.Looper.loop(Looper.java:176)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at android.app.ActivityThread.main(ActivityThread.java:5279)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at java.lang.reflect.Method.invokeNative(Native Method)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at java.lang.reflect.Method.invoke(Method.java:511)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at dalvik.system.NativeStart.main(Native Method)
05-03 18:48:11.283: E/AndroidRuntime(8187): Caused by: java.lang.NullPointerException
05-03 18:48:11.283: E/AndroidRuntime(8187):     at com.ironcake.jsynxs.MainActivity.addDrawerItems(MainActivity.java:46)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at com.ironcake.jsynxs.MainActivity.onCreate(MainActivity.java:35)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at android.app.Activity.performCreate(Activity.java:5267)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
05-03 18:48:11.283: E/AndroidRuntime(8187):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
05-03 18:48:11.283: E/AndroidRuntime(8187):     ... 11 more
我的主要活动:

public class MainActivity extends ActionBarActivity {

    private ListView mDrawerList;
    private DrawerLayout mDrawerLayout;
    private ArrayAdapter<String> mAdapter;
    private ActionBarDrawerToggle mDrawerToggle;
    private String mActivityTitle;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getApplicationContext());
        setContentView(R.layout.activity_main);

        mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
        mActivityTitle = getTitle().toString();

        addDrawerItems();
        setupDrawer();

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);
    }

    private void addDrawerItems() {
        //names on list
        String[] menuList = { "Sync", "Prefrences", "Settings" };
        mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, menuList);
        mDrawerList.setAdapter(mAdapter);

        mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this, "Time for an upgrade!", Toast.LENGTH_SHORT).show();
            }
         });
    }

    private void setupDrawer() {

        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,

                R.string.drawer_open, R.string.drawer_close) {

            /** Called when a drawer has settled in a completely open state. */
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
                getSupportActionBar().setTitle("Menu");
            }

            /** Called when a drawer has settled in a completely closed state. */
            public void onDrawerClosed(View view) {
                super.onDrawerClosed(view);
                getSupportActionBar().setTitle(mActivityTitle);
            }
        };
        mDrawerToggle.setDrawerIndicatorEnabled(true);
        mDrawerLayout.setDrawerListener(mDrawerToggle); 
    }
}
公共类MainActivity扩展了ActionBarActivity{
私有列表视图mDrawerList;
私人抽屉布局mDrawerLayout;
私人ArrayaAdapter mAdapter;
私有操作bardrawertoggle mDrawerToggle;
私有字符串mactivitytle;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
java.text.DateFormat DateFormat=android.text.format.DateFormat.getDateFormat(getApplicationContext());
setContentView(R.layout.activity_main);
mDrawerLayout=(抽屉布局)findViewById(R.id.抽屉布局);
mActivityTitle=getTitle().toString();
addDrawerItems();
setupDrawer();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
}
私有void addDrawerItems(){
//名单上的名字
字符串[]菜单列表={“同步”、“优先”、“设置”};
mAdapter=newarrayadapter(这是android.R.layout.simple\u expandable\u list\u item\u 1,menuList);
mDrawerList.setAdapter(mAdapter);
mDrawerList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Toast.makeText(MainActivity.this,“升级时间!”,Toast.LENGTH_SHORT.show();
}
});
}
私有void setupDrawer(){
mDrawerToggle=新操作BarDrawerToggle(此,mDrawerLayout,
R.string.drawer\u打开,R.string.drawer\u关闭){
/**当抽屉处于完全打开状态时调用*/
打开图纸上的公共空白(视图抽屉视图){
super.onDrawerOpened(抽屉视图);
getSupportActionBar().setTitle(“菜单”);
}
/**当抽屉处于完全关闭状态时调用*/
公共无效onDrawerClosed(视图){
super.onDrawerClosed(视图);
getSupportActionBar().setTitle(mActivityTitle);
}
};
mDrawerToggle.setDrawerIndicatorEnabled(true);
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
}
对不起,如果这是一个有点愚蠢的问题,但我已经被困在这一段时间了,所以欢迎任何帮助
谢谢

mDrawerList
尚未初始化

protected void onCreate(Bundle savedInstanceState) {
   ....
   mDrawerList = (ListView) findViewById(R.id.drawer_list); // or appropriate constant from XML 

在您的代码中,mDrawerList未在任何地方初始化。

mDrawerList
未在您的代码中初始化。这就是您获得NPE(NullPointerException)的原因

你必须使用,例如

mDrawerList = (ListView) findViewById(R.id.listview);

在使用它之前。

MainActivity.java中的第46行是什么?@Lal它是mDrawerList.setAdapter(mAdapter);为什么?这有什么问题吗?就是这样..看我的答案@用户3617132