मैं एक ऐसी गतिविधि बनाने की कोशिश कर रहा था जो एक सेवा शुरू करे (एक नए धागे में)। इसमें दो संपादन टेक्स्ट और भेजें नामक एक बटन वाला एक लेआउट होता है।java.lang.RuntimeException सेवा को तत्काल करने में असमर्थ: java.lang.NullPointerException
public class MainActivity extends Activity {
private String TAG = getClass().getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Thread t= new Thread(){
public void run(){
Intent intent=new Intent(getContext(),NotificationsService.class);
//Intent intent=new Intent("hikoki.services.NotificationsService");
Log.d(TAG,"sending notificationsService");
startService(intent);
}
};
t.start();
}
protected Context getContext() {
return this;
}
}
एक कोड आयुध डिपो NotificationsService यहाँ है:
public class NotificationsService extends IntentService{
private static int TIME_INTERVAL_MILIS=5000;
private static final int REFRESH=10;
private NotificationManager noteManager;
private static List<FlightStatusNote> flights= new ArrayList<FlightStatusNote>();
public NotificationsService(){
super("NotificationsService");
noteManager= NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE)
}
}
06-15 22:32:13.312: E/AndroidRuntime(643): FATAL EXCEPTION: main
06-15 22:32:13.312: E/AndroidRuntime(643): java.lang.RuntimeException: Unable to instantiate service hikoki.services.NotificationsService: java.lang.NullPointerException
06-15 22:32:13.312: E/AndroidRuntime(643): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2237)
06-15 22:32:13.312: E/AndroidRuntime(643): at android.app.ActivityThread.access$1600(ActivityThread.java:123)
06-15 22:32:13.312: E/AndroidRuntime(643): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201)
06-15 22:32:13.312: E/AndroidRuntime(643): at android.os.Handler.dispatchMessage(Handler.java:99)
06-15 22:32:13.312: E/AndroidRuntime(643): at android.os.Looper.loop(Looper.java:137)
06-15 22:32:13.312: E/AndroidRuntime(643): at android.app.ActivityThread.main(ActivityThread.java:4424)
06-15 22:32:13.312: E/AndroidRuntime(643): at java.lang.reflect.Method.invokeNative(Native Method)
06-15 22:32:13.312: E/AndroidRuntime(643): at java.lang.reflect.Method.invoke(Method.java:511)
06-15 22:32:13.312: E/AndroidRuntime(643): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-15 22:32:13.312: E/AndroidRuntime(643): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-15 22:32:13.312: E/AndroidRuntime(643): at dalvik.system.NativeStart.main(Native Method)
06-15 22:32:13.312: E/AndroidRuntime(643): Caused by: java.lang.NullPointerException
06-15 22:32:13.312: E/AndroidRuntime(643): at android.content.ContextWrapper.getSystemService(ContextWrapper.java:386)
06-15 22:32:13.312: E/AndroidRuntime(643): at hikoki.services.NotificationsService.<init>(NotificationsService.java:35)
06-15 22:32:13.312: E/AndroidRuntime(643): at java.lang.Class.newInstanceImpl(Native Method)
06-15 22:32:13.312: E/AndroidRuntime(643): at java.lang.Class.newInstance(Class.java:1319)
06-15 22:32:13.312: E/AndroidRuntime(643): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2234)
06-15 22:32:13.312: E/AndroidRuntime(643): ... 10 more
मुख्य गतिविधि के कोड यह है: बिंदु जब मैं MainActivity निष्पादित, फेंक देता है कि वह यह है कि
और एंड्रॉइडमैनिफेस्ट यह है:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="hikoki.services"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="hikoki.services.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".FlightStatusService"></service>
<service android:enabled="true" android:name=".NotificationsService"></service>
</application>
</manifest>
आप ऑनस्टार्ट से पहले getSystemService को कॉल नहीं कर सकते हैं क्योंकि आपका संदर्भ प्रारंभ नहीं किया गया है। – njzk2
@ njzk2 इसके लिए धन्यवाद! मैंने इसे बदल दिया, लेकिन यह अभी भी काम नहीं कर रहा है:/ – Mitodina
कृपया नया स्टैक ट्रेस पोस्ट करें, क्योंकि अब आप कहीं और दुर्घटनाग्रस्त हो रहे हैं। – CommonsWare