gpt4 book ai didi

java - Android/Java 空指针异常

转载 作者:行者123 更新时间:2023-11-29 20:47:38 26 4
gpt4 key购买 nike

所以,我在这里有点菜鸟,所以我需要一些帮助。我试图制作一个应用程序,但不断收到 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

我的主要 Activity :

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);
}
}

抱歉,如果这是一个有点愚蠢的问题,但我已经被困在这个问题上一段时间了,所以欢迎任何帮助谢谢

最佳答案

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

你必须使用,例如

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

使用前。

关于java - Android/Java 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30016637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com