2016-06-15 8 views
3

Ich habe meine Anwendung auf eine MultiDexApplication umgestellt, indem ich die Anweisungen in diesem Link - https://developer.android.com/studio/build/multidex.html - befolge.Die Verwendung von MultiDexApplication bewirkt, dass applicationContext null wird

Die Anwendung wird nun korrekt installiert, aber mein Anwendungskontext ist null. Hat jemand von euch schon einmal so etwas erlebt?

Lassen Sie mich wissen, wenn Sie Code-Beispiele benötigen, aber da die App abstürzt, weil es den Anwendungskontext nicht bekommen kann, kann ich mir keinen Code vorstellen, der das Problem erklären würde.

Erste mein Anwendungskontext wie folgt:

TrackerApplication.getContext(); 


public class TrackerApplication extends MultiDexApplication { 

private static Context context; 

public TrackerApplication() { 
    super(); 
    context = this; 
} 

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 

@Override 
public void onCreate() { 
    super.onCreate(); 
    Fabric.with(this, new Crashlytics()); 
} 

public static Context getContext() { 
    return context; 
} 
} 

Dann, wenn ich rufe:

TrackerApplication.getContext().getSharedPreferences("MySettings", 
      Context.MODE_PRIVATE); 

ich eine Nullpointer bekommen. Mein App-Kontext ist null.

Ein Test zur Erklärung des Problems wurde hinzugefügt. In meiner Auflegungs Tätigkeit habe ich diesen Code:

if (TrackerApplication.getContext() == null) { 
     Log.i("TEST", "Context is null"); 
    } else { 
     Log.i("TEST", "What is the issue?"); 
    } 

LogCat immer Context is null ausdruckt.

+0

Wo ist Ihr Code und Logcat? –

+0

Können Sie bitte Ihren Anwendungscode teilen, wo Sie den 'attachBaseContext' überschreiben? – ishmaelMakitla

+0

@MD, siehe meine Bearbeitungen – Lunchbox

Antwort

0

Endete, indem Sie das folgende tun: 1- Völlig entfernter multidex Code von APP. 2- Gereinigtes Projekt. 3- Projekt erstellt. 4 - Alle Multidex-Code erneut in das Projekt hinzugefügt. 5- Gereinigt und das Projekt erneut aufgebaut. 6- Es begann gerade danach zu arbeiten ..

Weiß nicht, warum es beim ersten Mal nicht funktioniert hat, aber jetzt funktioniert es gut.

+0

Hallo Ich habe das exakt gleiche Problem. Was meinst du mit "Vollständig entfernt Multidex-Code aus der App "? –

+0

@RicardoRuizRomero Hallo, ich habe gerade alle multidex Implementierung entfernt, die ich hinzugefügt habe. Wie aus meiner Gradle-Datei und meine Anwendung Klasse. Wie in" TestApplication extends Application "-Klasse.Wenn Sie zusätzliche Informationen möchten, fragen Sie einfach und ich werde mehr erklären Detail :) – Lunchbox

Verwandte Themen