Сбой программы Android при использовании getAssets () - PullRequest
1 голос
/ 08 марта 2011

У меня есть класс MyActivity, который расширяет активность. Этот класс по существу присутствует только для хранения нескольких дополнительных методов, которые мне понадобятся, и он также содержит шрифт, который я буду использовать для всего приложения. Так, например, у меня есть действие «Домашний экран», которое расширяет MyActivity. Однако, когда я пытаюсь создать экземпляр шрифта, используя:

    lavi = Typeface.createFromAsset(getAssets(), "fonts/Lavi.ttf");

программа аварийно завершает работу из-за нулевой точки, которая, по-видимому, возникает в методе getAssets (). Кто-нибудь знает, почему это происходит и как решить проблему?

EDIT: Logcat:

03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основное 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): java.lang.RuntimeException: Невозможно создать экземпляр действия. ComponentInfo {android.PhysicsEngine4 / android.PhysicsEngine4.HomeScreen}: java.lang.NullPointerException 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2585) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2679) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на android.app.ActivityThread.access $ 2300 (ActivityThread.java:125) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2033) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на android.os.Handler.dispatchMessage (Handler.java:99) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на android.os.Looper.loop (Looper.java:123) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на android.app.ActivityThread.main (ActivityThread.java:4627) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на java.lang.reflect.Method.invokeNative (собственный метод) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): в java.lang.reflect.Method.invoke (Method.java:521) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): в dalvik.system.NativeStart.main (собственный метод) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): вызвано: java.lang.NullPointerException 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на android.content.ContextWrapper.getAssets (ContextWrapper.java:74) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на android.PhysicsEngine4.MyActivity. (MyActivity.java:19) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на android.PhysicsEngine4.HomeScreen. (HomeScreen.java:12) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на java.lang.Class.newInstanceImpl (собственный метод) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на java.lang.Class.newInstance (Class.java:1429) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на android.app.Instrumentation.newActivity (Instrumentation.java:1021) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2577) 03-07 23: 47: 16.389: ОШИБКА / AndroidRuntime (9432): ... еще 11

Ответы [ 2 ]

0 голосов
/ 12 сентября 2015

Я думаю, что вы используете конфликтующий API Android в файле модуля AndroidManifest.xml и файле AndroidManifest.xml проекта. убедитесь, что они остались прежними, если у вас есть файл в модулях.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mrwujay.cascade"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="23" />
    <application/>
</manifest>
0 голосов
/ 08 марта 2011

HI

Пожалуйста, проверьте регистр имени шрифта (заглавные буквы) Lavi.ttf или lavi.ttf и попробуйте использовать тот же код в коде, который вы поместили в папку активов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...