android wifi状态更改导致应用程序崩溃
考虑到我的这个问题,我仍然无法找到为什么wifi状态更改会导致应用程序崩溃,当我的应用程序处于重新启动状态时从启动器返回,它会在恢复时更改为oncreate,然后应用程序崩溃,我试图在第二次活动的顶部在SharedRef中保存一个id,但仍然崩溃。android wifi状态更改导致应用程序崩溃,android,onresume,Android,Onresume,考虑到我的这个问题,我仍然无法找到为什么wifi状态更改会导致应用程序崩溃,当我的应用程序处于重新启动状态时从启动器返回,它会在恢复时更改为oncreate,然后应用程序崩溃,我试图在第二次活动的顶部在SharedRef中保存一个id,但仍然崩溃。 这里是logcat: 12-05 17:14:39.966: E/AndroidRuntime(29449): FATAL EXCEPTION: main 12-05 17:14:39.966: E/AndroidRuntime(29449): ja
这里是logcat:
12-05 17:14:39.966: E/AndroidRuntime(29449): FATAL EXCEPTION: main
12-05 17:14:39.966: E/AndroidRuntime(29449): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Pakagename/com.Pakagename.subCategories.SubCategoriesActivity}: java.lang.NullPointerException
12-05 17:14:39.966: E/AndroidRuntime(29449): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2205)
12-05 17:14:39.966: E/AndroidRuntime(29449): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2240)
12-05 17:14:39.966: E/AndroidRuntime(29449): at android.app.ActivityThread.access$600(ActivityThread.java:139)
12-05 17:14:39.966: E/AndroidRuntime(29449): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
12-05 17:14:39.966: E/AndroidRuntime(29449): at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 17:14:39.966: E/AndroidRuntime(29449): at android.os.Looper.loop(Looper.java:156)
12-05 17:14:39.966: E/AndroidRuntime(29449): at android.app.ActivityThread.main(ActivityThread.java:4977)
12-05 17:14:39.966: E/AndroidRuntime(29449): at java.lang.reflect.Method.invokeNative(Native Method)
12-05 17:14:39.966: E/AndroidRuntime(29449): at java.lang.reflect.Method.invoke(Method.java:511)
12-05 17:14:39.966: E/AndroidRuntime(29449): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-05 17:14:39.966: E/AndroidRuntime(29449): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-05 17:14:39.966: E/AndroidRuntime(29449): at dalvik.system.NativeStart.main(Native Method)
12-05 17:14:39.966: E/AndroidRuntime(29449): Caused by: java.lang.NullPointerException
12-05 17:14:39.966: E/AndroidRuntime(29449): at com.Pakagename.subCategories.SubCategoriesActivity.getSubCategories(SubCategoriesActivity.java:119)
12-05 17:14:39.966: E/AndroidRuntime(29449): at com.Pakagename.subCategories.SubCategoriesActivity.onCreate(SubCategoriesActivity.java:90)
12-05 17:14:39.966: E/AndroidRuntime(29449): at android.app.Activity.performCreate(Activity.java:4538)
12-05 17:14:39.966: E/AndroidRuntime(29449): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071)
12-05 17:14:39.966: E/AndroidRuntime(29449): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161)
12-05 17:14:39.966: E/AndroidRuntime(29449): ... 11 more
12-05 17:14:39.976: E/EmbeddedLogger(1627): App crashed! Process: com.Pakagename
12-05 17:14:39.976: E/EmbeddedLogger(1627): App crashed! Package: com.Pakagename v2 (1.0)
下面是我在oncreate of Subcategory活动中所做的
if(getIntent().hasExtra("categoryid")) {
if(getIntent().getStringExtra("categoryid") != null) {
categoryId = Integer.parseInt(getIntent().getStringExtra("categoryid"));
getSubCategories(categoryId);
}
} else {
getSubCategories(categoryIdFromPref); // getting an id from pref, that iam saving in onstop
}
和getSubCategories方法
private void getSubCategories(int categoryId) {
if(categoryId!=0) {
query = "SELECT * FROM sub_categories WHERE category_id = "+categoryId+" AND is_archived = 0";
Log.d("subCategory query", query);
c = MainActivity.db.rawQuery(query, null);
c.moveToFirst();
}
}
logcat在我检查后带我到这条线
c = MainActivity.db.rawQuery(query, null);
我的清单看起来像
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
<activity
android:name="com.Pakagename.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.Pakagename.SplashScreenActivity"
android:parentActivityName="com.Pakagename.MainActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:screenOrientation="portrait"
android:value="com.Pakagename.MainActivity" />
</activity>
<activity
android:name="com.Pakagename.subCategories.SubCategoriesActivity"
android:screenOrientation="portrait"
</activity>
如果错误是NullPointerException,则应检查该变量是否不为inicializaste或是否为null
start activity ComponentInfo{com.Pakagename/com.Pakagename.subCategories.SubCategoriesActivity}: java.lang.NullPointerException
我希望能帮助你;对不起,我的英语不好。在MainActivity
中的静态变量db
为空。这将导致空指针。如果您解决了这个问题,错误也会得到解决。最好不要在MainActivity中使用静态db
变量,而是在SubCategoriesActivity
发布代码和清单文件中重新打开数据库。请查看前面问题的链接,特别是在SubCategoriesActivity中显示方法getSubCategories()。那里也没有代码。确定,我正在编辑我的问题