从Android Studio中的资产加载字体时出现NullPointerException

从Android Studio中的资产加载字体时出现NullPointerException,android,debugging,android-studio,android-typeface,Android,Debugging,Android Studio,Android Typeface,我想在我的Android应用程序中使用自定义字体。我按照说明在Android studio中创建了一个assets文件夹,在其中放置verdana.ttf,如图所示: 然后在我的main活动中调用以下内容: public class MainActivity extends ActionBarActivity { Typeface mainFont = Typeface.createFromAsset(getAssets(), "verdana.ttf"); 代码可以编译,但是当活

我想在我的Android应用程序中使用自定义字体。我按照说明在Android studio中创建了一个
assets
文件夹,在其中放置
verdana.ttf
,如图所示:

然后在我的
main活动中调用以下内容:

public class MainActivity extends ActionBarActivity {

    Typeface mainFont = Typeface.createFromAsset(getAssets(), "verdana.ttf");

代码可以编译,但是当活动启动时,我在上面的一行中得到一个
NullPointerException
。我怀疑
verdana.ttf
文件可能已损坏,但在尝试不同字体时,错误仍然存在。清理项目也无济于事。资产文件夹是否位于错误的位置?我可能做错了什么?

您试图从初始值设定项调用
createFromAsset()
。在调用
super.onCreate()
之后,请将此移动到
onCreate()
。您在
活动中继承的方法在此之前可能不起作用。

您正试图从初始值设定项调用
createFromAsset()
。在调用
super.onCreate()
之后,请将此移动到
onCreate()
。您在
活动中继承的方法在此之前可能不起作用。

您正试图从初始值设定项调用
createFromAsset()
。在调用
super.onCreate()
之后,请将此移动到
onCreate()
。您在
活动中继承的方法在此之前可能不起作用。

您正试图从初始值设定项调用
createFromAsset()
。在调用
super.onCreate()
之后,请将此移动到
onCreate()
。您在
活动中继承的方法在此之前可能不起作用。

谢谢,它就是这样工作的!但是在我的代码构造中,我需要在
onCreateView
方法中的静态类中调用
createFromAsset()
。因此,在调用这里的
super.onCreate()
之后,我尝试
Typeface.createFromAsset(getActivity().getAssets(),“verdana.ttf”)
,在这里我再次得到一个
NullPointerException
。有解决这个问题的方法吗(或者我应该把它作为一个新问题发布?。@Sid:“但是在我的代码构造中,我需要在onCreateView方法的静态类中调用createFromAsset()”--
onCreateView()
可以调用
getActivity()
来获取有效的
上下文来使用。将该
上下文
传递到一个静态方法中,该方法惰性地初始化您的
字体
。“有解决这个问题的方法吗(或者我应该把它作为一个新问题发布?)——我不理解你其余的评论,所以如果我在这里给出的建议不充分,你可能需要问一个新的问题,包括完整的堆栈跟踪和源代码。谢谢,它就是这样工作的!但是在我的代码构造中,我需要在
onCreateView
方法中的静态类中调用
createFromAsset()
。因此,在调用这里的
super.onCreate()
之后,我尝试
Typeface.createFromAsset(getActivity().getAssets(),“verdana.ttf”)
,在这里我再次得到一个
NullPointerException
。有解决这个问题的方法吗(或者我应该把它作为一个新问题发布?。@Sid:“但是在我的代码构造中,我需要在onCreateView方法的静态类中调用createFromAsset()”--
onCreateView()
可以调用
getActivity()
来获取有效的
上下文来使用。将该
上下文
传递到一个静态方法中,该方法惰性地初始化您的
字体
。“有解决这个问题的方法吗(或者我应该把它作为一个新问题发布?)——我不理解你其余的评论,所以如果我在这里给出的建议不充分,你可能需要问一个新的问题,包括完整的堆栈跟踪和源代码。谢谢,它就是这样工作的!但是在我的代码构造中,我需要在
onCreateView
方法中的静态类中调用
createFromAsset()
。因此,在调用这里的
super.onCreate()
之后,我尝试
Typeface.createFromAsset(getActivity().getAssets(),“verdana.ttf”)
,在这里我再次得到一个
NullPointerException
。有解决这个问题的方法吗(或者我应该把它作为一个新问题发布?。@Sid:“但是在我的代码构造中,我需要在onCreateView方法的静态类中调用createFromAsset()”--
onCreateView()
可以调用
getActivity()
来获取有效的
上下文来使用。将该
上下文
传递到一个静态方法中,该方法惰性地初始化您的
字体
。“有解决这个问题的方法吗(或者我应该把它作为一个新问题发布?)——我不理解你其余的评论,所以如果我在这里给出的建议不充分,你可能需要问一个新的问题,包括完整的堆栈跟踪和源代码。谢谢,它就是这样工作的!但是在我的代码构造中,我需要在
onCreateView
方法中的静态类中调用
createFromAsset()
。因此,在调用这里的
super.onCreate()
之后,我尝试
Typeface.createFromAsset(getActivity().getAssets(),“verdana.ttf”)
,在这里我再次得到一个
NullPointerException
。有解决这个问题的方法吗(或者我应该把它作为一个新问题发布?。@Sid:“但是在我的代码构造中,我需要在onCreateView方法的静态类中调用createFromAsset()”--
onCreateView()
可以调用
getActivity()
来获取有效的
上下文来使用。将该
上下文
传递到一个静态方法中,该方法惰性地初始化您的
字体
。“有解决这个问题的方法吗(或者我应该把它作为一个新问题发布?)——我不理解你其余的评论,因此如果我在这里给出的建议不充分,你可能需要问一个新的问题,包括完整的堆栈跟踪和源代码。