E / AndroidRuntime:致命exception:主要

当我测试我的应用程序时,我在Android-Studio-Consol中得到了以下错误:

08-21 13:56:28.059 9637-9637/net.dominik.genpush E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: net.dominik.genpush, PID: 9637 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{net.dominik.genpush/net.dominik.genpush.settings}: java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110) 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 android.app.Activity.findViewById(Activity.java:1884) at net.dominik.genpush.settings.(settings.java:23) at java.lang.Class.newInstanceImpl(Native Method) at java.lang.Class.newInstance(Class.java:1208) at android.app.Instrumentation.newActivity(Instrumentation.java:1061) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2101)             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) 

这是一段代码:

 public CheckBox checkBox_push; public TextView textView_appby; public Button button_feedback; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings); checkBox_push = (CheckBox) findViewById(R.id.checkBox_push); textView_appby = (TextView) findViewById(R.id.textView_appby); button_feedback = (Button) findViewById(R.id.button_feedback); } public void onTextClickAppBy(View x) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setData(Uri.parse("http://www.dominiktv.net")); startActivity(intent); } //Button Status Speichern @Override public void onPause() { super.onPause(); save(checkBox_push.isChecked()); } @Override public void onResume() { super.onResume(); checkBox_push.setChecked(load()); } private void save(final boolean isChecked) { SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean("check", isChecked); editor.commit(); } private boolean load() { SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE); return sharedPreferences.getBoolean("check", true); } public void onCheckboxPush(View b) { if (checkBox_push.isChecked()) { //PB Pushbots.getInstance().setNotifyStatus(true); //PB E Toast.makeText(getApplicationContext(), "Push-Benachrichtigungen aktiviert", Toast.LENGTH_SHORT).show(); } else { //PB Pushbots.getInstance().setNotifyStatus(false); //PB E Toast.makeText(getApplicationContext(), "Push-Benachrichtigungen deaktiviert", Toast.LENGTH_SHORT).show(); } } 

该应用程序也适用于错误,但在一个应用程序中出错是不好的。 我已经google了很多但是我的java技能还不够远,这是我的第一个自创应用程序

 Caused by: java.lang.NullPointerException at android.app.Activity.findViewById(Activity.java:1884) at net.dominik.genpush.settings.(settings.java:23) 

在初始化活动settings对象(可能是成员变量findViewById()时,您过早地调用findViewById() 。 您发布的代码没有显示。

您只能在onCreate()或更高版本中调用活动函数。

同时在setContentView() findViewById()之后放置findViewById() ,这样它实际上可以返回null以外的东西。

您的settings.java NullPointerException ,第23行。

您可以在Logcat的Cause by找到问题代码。 显然,你的问题在于

 at net.dominik.genpush.settings.(settings.java:23)