Hi,
ich hab vor kurzem eine Android-App released. Aufgrund steigender Userzahl kommt es allerdings immer häufiger zu Abstürzen der selben Art. Es handelt sich dabei um eine NullPointerException in onCreate(), bzw. onResume()-Methoden verschiedener Activities. Grund für die Exception ist, dass eine Membervariable der Klasse "AssetLoader" nicht (mehr) existiert. AssetLoader sieht etwa wie folgt aus:
Die einzelnen Membervariablen halten einen großen Teil der von meiner App benötigten Resourcen.
z.B hier kommt es dann zum Fehler:
Es gibt eigentlich nur ein Szenario in dem AssetLoader.a == null wäre:
Der User verlässt die App ohne sie zu schließen. Während er mit etwas anderem beschäftigt ist zerstört das System die Instanzen a,b,c,... , sowie die derzeitige Activity. Navigiert der User jetzt zurück wird wohl die letzte Activity (des wohl noch existierenden Tasks) wieder neu gestartet, allerdings sind alte Instanzen (wie die "Memberobjekte" von AssetLoader) nicht mehr vorhanden. Das ist jetzt natürlich spekuliert, vllt weis da ja jemand besser bescheid? Wie kann man sich denn hier Abhilfe verschaffen?
MfG
ich hab vor kurzem eine Android-App released. Aufgrund steigender Userzahl kommt es allerdings immer häufiger zu Abstürzen der selben Art. Es handelt sich dabei um eine NullPointerException in onCreate(), bzw. onResume()-Methoden verschiedener Activities. Grund für die Exception ist, dass eine Membervariable der Klasse "AssetLoader" nicht (mehr) existiert. AssetLoader sieht etwa wie folgt aus:
Java:
public class AssetLoader{
public static ClassA a;
public static ClassB b;
public static ClassC c;
...
}
z.B hier kommt es dann zum Fehler:
Java:
@Override
protected void onResume(){
AssetLoader.a.doSth(); //Führt zur Exception
...}
Es gibt eigentlich nur ein Szenario in dem AssetLoader.a == null wäre:
Der User verlässt die App ohne sie zu schließen. Während er mit etwas anderem beschäftigt ist zerstört das System die Instanzen a,b,c,... , sowie die derzeitige Activity. Navigiert der User jetzt zurück wird wohl die letzte Activity (des wohl noch existierenden Tasks) wieder neu gestartet, allerdings sind alte Instanzen (wie die "Memberobjekte" von AssetLoader) nicht mehr vorhanden. Das ist jetzt natürlich spekuliert, vllt weis da ja jemand besser bescheid? Wie kann man sich denn hier Abhilfe verschaffen?
MfG