Ошибка выполнения Digitalclock при попытке изменить шрифт - PullRequest
1 голос
/ 26 марта 2012

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

Примечание: шрифт находится в папке ресурсов, и имя указано правильно.

package asd.asasdx;

import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.widget.DigitalClock;

public class ClockzActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        DigitalClock digitalClock = (DigitalClock) findViewById(R.id.digitalClock);
        setContentView(R.layout.main);
        Typeface type = Typeface.createFromAsset(getAssets(), "DS_DIGI.TTF");
        digitalClock.setTypeface(type);
    }
}

И XML:

<DigitalClock
    android:id="@+id/digitalClock"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="DigitalClock"
    android:textSize="70dp"
    android:textColor="#00FF00"
    android:gravity="center"
    android:shadowColor="#00FF00"
    android:shadowRadius="16" />

Но когда я запускаю приложение, оно падает из-за ошибки времени выполнения:

03-26 19:05:49.242: E/AndroidRuntime(29310): FATAL EXCEPTION: main
03-26 19:05:49.242: E/AndroidRuntime(29310): java.lang.RuntimeException: Unable to start activity ComponentInfo{asd.asasdx/asd.asasdx.ClockzActivity}: java.lang.RuntimeException: native typeface cannot be made
03-26 19:05:49.242: E/AndroidRuntime(29310):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at android.os.Looper.loop(Looper.java:137)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at android.app.ActivityThread.main(ActivityThread.java:4424)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at java.lang.reflect.Method.invokeNative(Native Method)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at java.lang.reflect.Method.invoke(Method.java:511)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at dalvik.system.NativeStart.main(Native Method)
03-26 19:05:49.242: E/AndroidRuntime(29310): Caused by: java.lang.RuntimeException: native typeface cannot be made
03-26 19:05:49.242: E/AndroidRuntime(29310):    at android.graphics.Typeface.<init>(Typeface.java:147)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at android.graphics.Typeface.createFromAsset(Typeface.java:121)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at asd.asasdx.ClockzActivity.onCreate(ClockzActivity.java:15)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at android.app.Activity.performCreate(Activity.java:4465)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
03-26 19:05:49.242: E/AndroidRuntime(29310):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
03-26 19:05:49.242: E/AndroidRuntime(29310):    ... 11 more

В чем проблема?

1 Ответ

1 голос
/ 26 марта 2012

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

...