Versuch zum aufrufen der virtuellen Methode 'android.Inhalt.res.AssetManager android.Inhalt.res.Ressourcen.getAssets()' auf ein null-Objekt Verweis

Was ist passiert:

  1. 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.
  2. was ich verstehen kann ist, dass seine verursacht durch das Vermögen, dass ich
    verwendet haben
  3. 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
InformationsquelleAutor Devrath | 2015-05-13
Schreibe einen Kommentar