This bilinen bir can sıkıcı 2 yaşındaki Android hatasıdır.Service.startForeground() ServiceTestCase ile çalıştırıldığında NullPointerException atar
Sorunun, Android kaynak kodunu değiştirmenin ve bir daha derlemenin yanı sıra bu sorunla ilgili herhangi bir geçici çözüm bilen var mı? NPE yükseltir
My Servis alt sınıf yöntemi: Bu onCreate()
yöntem geçersiz kılma işleminden
/** Shows notification of started service */
private void doStartForeground() {
// Prepare notification
final NotificationHelper nh = doNotification("Service started");
// Start foreground
startForeground(nh.getNotificationId(), nh.getNotification());
}
denir
İşte tamamlanma uğruna benim kod.
Ve JUnit test yöntemi:public void test1() throws InterruptedException {
assertTrue(context != null);
final Intent service = new Intent();
service.setComponent(new ComponentName(CoreService.PACKAGE_NAME,
CoreService.SERVICE_FULL_NAME));
IBinder binder = bindService(service);
assertTrue(binder != null);
}
Yığın izleme:
java.lang.NullPointerException
at android.app.Service.startForeground(Service.java:631)
at com.blablabla.android.core.CoreService.doStartForeground(CoreService.java:82)
at com.blablabla.android.core.CoreService.onCreate(CoreService.java:149)
at android.test.ServiceTestCase.bindService(ServiceTestCase.java:234)
at com.blablabla.android.core.test.MainTest.test1(MainTest.java:37)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:537)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1551)
Hizmeti düzgün başlar ve Android'in JUnit üzerinden çalışmasını değilken çalışıyor.
/** JUNIT - this is for testing purposes only */
public static boolean isJUnit = false;
Ve onCreate()
yönteminde kontrol:
Korkunç! Bunu bulmak için teşekkürler. Sorun, burada ADT forumunda belirtilmiştir: https://code.google.com/p/android/issues/detail?id=12122 – Snicolas
Evet Bunu gördüm (bağlantı, söz konusu). Şimdi 3 yaşında ve sayıyor ... – m0skit0
Sadece eski gibi gözüküyordu, ancak emin değilim. – Xiao