I’m trying to display a digitalclock in the activity, but when I add the code to change the font, the app crashes:
Note: the font is in the asset folder and the name is correct.
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);
}
}
And 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" />
But when I run the app, it crashes because of a runtime error:
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
What’s the problem?
your code is right but this error occur only if we have any fonts related problem so check your font location and font name may be possible not same or any other problem in font.