TrueType не удается загрузить в Android сотовый - PullRequest
2 голосов
/ 23 августа 2011

Я немного искал, но все ответы на исключение связаны с тем, что люди загружают неправильный шрифт.

Однако я пытаюсь загрузить шрифт TrueType. Это работает для большинства устройств, на которых я тестировал. Однако при попытке загрузить на Tab 10.1 под управлением Android 3.1 или EEEPad под управлением 3.2 я получаю следующее исключение:

Caused by: java.lang.RuntimeException: native typeface cannot be made

Полная трассировка стека:

java.lang.RuntimeException: Unable to start activity ComponentInfo{se.healthyheroes.android.app/se.healthyheroes.android.app.LoginActivity}: java.lang.RuntimeException: native typeface cannot be made
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1815)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831)
    at android.app.ActivityThread.access$500(ActivityThread.java:122)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1024)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:132)
    at android.app.ActivityThread.main(ActivityThread.java:4123)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:491)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: native typeface cannot be made
    at android.graphics.Typeface.<init>(Typeface.java:147)
    at android.graphics.Typeface.createFromAsset(Typeface.java:121)
    at se.healthyheroes.android.app.LoginActivity.initViews(LoginActivity.java:154)
    at se.healthyheroes.android.app.LoginActivity.onCreate(LoginActivity.java:94)
    at android.app.Activity.performCreate(Activity.java:4397)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1779)
    ... 11 more
java.lang.RuntimeException: native typeface cannot be made
    at android.graphics.Typeface.<init>(Typeface.java:147)
    at android.graphics.Typeface.createFromAsset(Typeface.java:121)
    at se.healthyheroes.android.app.LoginActivity.initViews(LoginActivity.java:154)
    at se.healthyheroes.android.app.LoginActivity.onCreate(LoginActivity.java:94)
    at android.app.Activity.performCreate(Activity.java:4397)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1779)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831)
    at android.app.ActivityThread.access$500(ActivityThread.java:122)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1024)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:132)
    at android.app.ActivityThread.main(ActivityThread.java:4123)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:491)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
    at dalvik.system.NativeStart.main(Native Method)

Вас может заинтересовать строка 154 в LoginActivity. Вот эта строка:

Typeface tf =(Typeface.createFromAsset(getAssets(), "fonts/style_5784.ttf"));

Шрифт находится в папке assets / fonts / style_5784.ttf в моем проекте в Eclipse. Действительно странно то, что он работает на всех других устройствах, кроме сотовой.

У кого-нибудь есть идеи, что может вызвать исключение? Возможно, шрифт поврежден или есть что-то простое, например, имя файла? Единственное, что мне удалось понять, обыскав его, это то, что это может быть каким-то образом поврежденный шрифт.

1 Ответ

0 голосов
/ 27 сентября 2011

При дальнейшем рассмотрении этой ошибки не похоже, что ошибка вызвана именем шрифта.Ошибка происходит внутри собственного кода, который, скорее всего, изменен в Honeycomb и не может быть отлажен с помощью трассировки стека.

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

...