1

我有一个扩展活动的类 MyActivity。这个类本质上只是为了保存一些我需要的额外方法,它还保存了我将用于整个应用程序的字体。因此,例如,我有一个扩展 MyActivity 的活动“HomeScreen”。但是,当我尝试使用以下方法实例化字体时:

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

由于似乎在 getAssets() 方法中发生的空指针,程序崩溃。有谁知道为什么会发生这种情况以及如何解决这个问题?

编辑:Logcat:

03-07 23:47:16.389: 错误/AndroidRuntime(9432): 致命异常: main 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: ERROR/AndroidRuntime(9432): at android.os.Looper.loop(Looper.java:123) 03-07 23:47:16.389: ERROR/ AndroidRuntime(9432): 在 android.app.ActivityThread.main(ActivityThread.java:4627) 03-07 23:47:16.389: 错误/AndroidRuntime(9432): 在 java.lang.reflect.Method.invokeNative(Native Method) 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: ERROR/AndroidRuntime(9432): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:626) 03-07 23:47:16.389: ERROR/AndroidRuntime(9432): at dalvik.system.NativeStart.main(Native Method) 03-07 23:47:16.389: ERROR/AndroidRuntime(9432):引起:java.lang.NullPointerException 03-07 23:47:16.389: ERROR/AndroidRuntime(9432): at android.content.ContextWrapper.getAssets(ContextWrapper.java:74) 03-07 23:47:16.389: ERROR/ 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: ERROR/AndroidRuntime(9432): at java.lang.Class.newInstanceImpl(Native Method) 03-07 23:47:16.389: ERROR/AndroidRuntime(9432): at 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 更多

4

2 回答 2

0

你好,

请检查字体名称大小写(大写字符)Lavi.ttf 或 lavi.ttf 并尝试在代码中使用与您放入 assets 文件夹中的相同的代码。

于 2011-03-08T04:24:08.407 回答
0

我认为您在模块的 AndroidManifest.xml 文件和项目的 AndroidManifest.xml 中使用了冲突的 Android API。如果您在模块中有文件,请确保它们保持不变。

<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>
于 2015-09-12T05:39:12.113 回答