Mam wyjątek wskaźnika pustego w emulatorze Androida 3.2 na prostym projekcie Android utworzonym przez Wyded z usługą w oddzielnym procesie, kiedy przełączam się pomiędzy "Rozciągnij, aby wypełnić ekran", "Powiększ do wypełnienia" ekran". Ta awaria stanie się nieunikniona, jeśli usługa zostanie poddana temu samemu procesowi z głównym działaniem, a mianowicie nie zostanie określony atrybut "android: process". Chociaż dzieje się tak tylko wtedy, gdy dodam "android: process" do pliku manifestu dla mojej usługi testowej.Wyjątek NullPointerException w WindowManagerImpl na systemie Android OS 3.2
Wyjątek:
FATAL EXCEPTION: main
java.lang.NullPointerException
at android.view.WindowManagerImpl.reportNewConfiguration(WindowManagerImpl.java:427)
at android.app.ActivityThread.handleUpdatePackageCompatibilityInfo(ActivityThread.java:2801)
at android.app.ActivityThread.access$2700(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4123)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
at dalvik.system.NativeStart.main(Native Method)
My kod badania:
TestActivity.java (generowanych przez Wizerd)
package com.test;
import android.app.Activity;
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent = new Intent(this, TestService.class);
startService(intent);
}
}
TestService.java (większość funkcji jest pusty)
Package com.test;
import android.content.ComponentName;
public class TestService extends Service {
private boolean m_connected = false;
private ServiceConnection m_connInitService = new ServiceConnection() {
public void onServiceConnection(ComponentName className, IBinder service) {
m_connected = true;
}
public void onServiceDisconnected(ComponentName className) {
}
};
public static class TestServiceBinder extends Binder {
}
public IBinder onBind(Intent intent) {
return new TestServiceBinder();
}
public void onDestroy() {
super.onDestroy();
}
public int onStartCommand(Intent intent, int flags, int startId) {
return 1;
}
}
Jeśli uruchomię aplikację testową bez usługi lub z usługą w tym samym procesie, przełącznik zgodności ekranu nie spowoduje żadnego problemu. Jednak nie rozumiem, dlaczego usługa może powodować wyjątek systemu podczas przełączania zgodności ekranu. Czy to dlatego, że proces serwisowy jest procesem niezgodnym z interfejsem użytkownika? Które mogą potencjalnie wywołać błąd w rdzeniu Androida?
Dzieje się tak również z mojej aplikacji na tablecie XOOM. Mam również zobowiązaną służbę do mojej działalności, w której to się dzieje. – Jona
Czy kiedykolwiek znalazłeś rozwiązanie? –