从Android Studio中的资产加载字体时出现NullPointerException
我想在我的Android应用程序中使用自定义字体。我按照说明在Android studio中创建了一个从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"); 代码可以编译,但是当活
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()
来获取有效的上下文来使用。将该上下文
传递到一个静态方法中,该方法惰性地初始化您的字体
。“有解决这个问题的方法吗(或者我应该把它作为一个新问题发布?)——我不理解你其余的评论,因此如果我在这里给出的建议不充分,你可能需要问一个新的问题,包括完整的堆栈跟踪和源代码。