Versuch zum aufrufen der virtuellen Methode 'android.Inhalt.res.AssetManager android.Inhalt.res.Ressourcen.getAssets()' auf ein null-Objekt Verweis
Was ist passiert:
- Ich habe einen stacktrace aus dem appstore als unten, problem ich bin vor
ist, dass es nicht ganz zeigen, welche Klasse verursacht hat, dieser Absturz. - was ich verstehen kann ist, dass seine verursacht durch das Vermögen, dass ich
verwendet haben - Einzige Ort, ich bin mit Vermögen ist auf der Anwendungsebene setzen die
font
Code:
private void setDefaultFont() {
try {
final Typeface bold = Typeface.createFromAsset(getAssets(), "fonts/OpenSans-Bold.ttf");
final Typeface italic = Typeface.createFromAsset(getAssets(), "fonts/OpenSans-Italic.ttf");
final Typeface boldItalic = Typeface.createFromAsset(getAssets(), "fonts/OpenSans-BoldItalic.ttf");
final Typeface regular = Typeface.createFromAsset(getAssets(),"fonts/OpenSans-Regular.ttf");
Field DEFAULT = Typeface.class.getDeclaredField("DEFAULT");
DEFAULT.setAccessible(true);
DEFAULT.set(null, regular);
Field DEFAULT_BOLD = Typeface.class.getDeclaredField("DEFAULT_BOLD");
DEFAULT_BOLD.setAccessible(true);
DEFAULT_BOLD.set(null, bold);
Field sDefaults = Typeface.class.getDeclaredField("sDefaults");
sDefaults.setAccessible(true);
sDefaults.set(null, new Typeface[]{
regular, bold, italic, boldItalic
});
} catch (NoSuchFieldException e) {
//logFontError(e);
} catch (IllegalAccessException e) {
//logFontError(e);
} catch (Throwable e) {
//cannot crash app if there is a failure with overriding the default font!
//logFontError(e);
}
}
StackTrace aus dem Appstore:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.AssetManager android.content.res.Resources.getAssets()' on a null object reference
at android.app.LoadedApk.getAssets(LoadedApk.java:528)
at android.app.LoadedApk.makeApplication(LoadedApk.java:584)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4526)
at android.app.ActivityThread.access$1500(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Welchen Ansatz sollte ich ergreifen müssen, um dieses Problem beheben??
- wie viele Abstürze ?
- Nun, unter anderem, aufhören zu Essen, Ausnahmen ohne Anmeldung, wie Sie tun in Ihrem vorhandenen code. Für alles, was Sie wissen, die Informationen, die Sie benötigen, um das problem zu beheben wird Sie Euch übergeben, und Sie ignorieren es.
- Blackbelt .... Nur eine ... Seltsam ! ... seine Arbeit immer!, plötzlich bekam dieser Absturz
- CommonsWare .... Danke für die i/p, ja, ich mache einen Fehler, indem Sie nicht handeling die Ausnahme. aber was kann ich damit umgehen im Falle exception Auftritt. sollte ich brauche, um Standard-Schriftarten oder sowas ? ... ist ein i/p
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sah ich dieses auch von Lollipop Geräte mit der gleichen stacktrace, auch ohne Bezug zu eigenen code. Es scheint eine Plattform, die Fehler kommen durch unvollständige app-updates finden Sie unter https://code.google.com/p/android/issues/detail?id=56296
Versuchen zu erklären, dass die schriftart-Stile separat (nicht in der gleichen Zeile), wie folgend,
ändern:
zu:
Kein großer workaround, aber (nachdem sichergestellt ist, hatte ich die neuesten Android-SDK-updates installiert), konnte ich dies beheben, nur jetzt durch die deinstallation und Neuinstallation der Anwendung war ich testen.
Hinzufügen Kontext beim Aufruf,
Sollte es so sein,-