使用getAssets时Android程序崩溃()
我有一个MyActivity类,它扩展了活动。这个类本质上只是用来存放我需要的一些额外的方法,它也包含我将用于整个应用程序的字体。所以,举个例子,我有一个扩展MyActivity的活动“HomeScreen”。然而,当我尝试实例使用的字体:使用getAssets时Android程序崩溃()
lavi = Typeface.createFromAsset(getAssets(), "fonts/Lavi.ttf");
的程序崩溃是由于这似乎在getAssets()方法正在发生一个空指针。有谁知道为什么会发生这种情况,以及如何解决问题?
编辑: logcat的:
03-07 23:47:16.389:ERROR/AndroidRuntime(9432):致命异常:主 03-07 23:47:16.389:ERROR/AndroidRuntime(9432): java.lang.RuntimeException:无法实例化活动ComponentInfo {android.PhysicsEngine4/android.PhysicsEngine4.HomeScreen}:java.lang.NullPointerException 03-07 23:47:16.389:ERROR/AndroidRuntime(9432):at android.app。 ActivityThread.performLaunchActivity(ActivityThread.java:2585) 03-07 23:47:16.389:ERROR/AndroidRuntime(9432):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 03-07 23:47: 16.389:错误/ AndroidRuntime(9432): at android.app.ActivityThread.access $ 2300(ActivityThread.java:125) 03-07 23:47:16.389:ERROR/AndroidRuntime(9432):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033) 03-07 23:47:16.389:ERROR/AndroidRuntime(9432):at 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):at android.app.ActivityThread.main(ActivityThread.java:4627) 03-07 23:47:16.389:ERROR/AndroidRuntime(9432):at java.lang.reflect.Method.invokeNative(Native Method) 03-07 23:47:16.389:ERROR/AndroidRuntime(9432):at java.lang.reflect .Method.invoke(Method.java:521) 03-07 23:47:16.389:ERROR/AndroidRuntime(9432):at 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 ):at android.PhysicsEngine4.MyActivity。(MyActivity.java:19) 03-07 23:47:16.389:ERROR/AndroidRuntime(9432):at android.PhysicsEngine4.HomeScreen。(HomeScreen.java:12) 03- 07 23:47:16.389:ERROR/AndroidRuntime(9432):at java.lang.Class.newInstanceImpl(Nat ive Method) 03-07 23:47:16.389:ERROR/AndroidRuntime(9432):at java.lang.Class.newInstance(Class.java:1429) 03-07 23:47:16.389:ERROR/AndroidRuntime(9432 ):at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 03-07 23:47:16.389:ERROR/AndroidRuntime(9432):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 03-07 23:47:16.389:ERROR/AndroidRuntime(9432):... 11多个
HI,
PLZ检查字体名称的情况下(大写字符)lavi.ttf或lavi.ttf并尝试在代码中使用与放置在资产文件夹中相同的代码。
它是字体文件夹中的Lavi.ttf。谢谢您的好意。 – 2011-03-08 04:44:50
将这个字体放入ur资源文件夹中并运行 – Mathew 2011-03-08 07:08:04
我想你在模块的AndroidManifest.xml文件和项目的AndroidManifest中使用冲突的Android API。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>
能否请您发表您的logcat数据 – 2011-03-08 04:24:13
肯定的是,它会在那里在一分钟 – 2011-03-08 04:46:47
试试这个LAVI = Typeface.createFromAsset(this.getAssets(), “字体/ Lavi.ttf”); – Want2bExpert 2015-09-12 05:42:29