Java 运行Typeface以更改字体系列时出现异常

Java 运行Typeface以更改字体系列时出现异常,java,android,Java,Android,当我运行代码时,由于字体的原因,它会出现一些异常 我有一个微调器,我希望它在单击其中任何一个时更改字体族 但它不起作用 这是我的.java代码 public class Graduation extends ActionBarActivity { ImageView imageView ; Spinner spinner; int fontSizeInt; String[]items = { "12", "16", "18", "20", "24", "28" , "30" }; Sp

当我运行代码时,由于字体的原因,它会出现一些异常 我有一个微调器,我希望它在单击其中任何一个时更改字体族 但它不起作用

这是我的.java代码

 public class Graduation extends ActionBarActivity {

ImageView imageView ;
 Spinner spinner;
 int fontSizeInt;
String[]items = { "12", "16", "18", "20", "24", "28" , "30" };
 Spinner spinner1;
 int fontSizeFamily;

String[]f_items = { "Times New Roman ", "Arial", "sans-serif", "20", "24", "28" , "30" };
 EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.graduation);

    spinner = (Spinner)findViewById(R.id.spinner);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
        this, android.R.layout.simple_spinner_item, items);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(
              new AdapterView.OnItemSelectedListener() {
                  @Override
                  public void onItemSelected(AdapterView<?> arg0, View arg1,
                          int arg2, long arg3) {
                    int position = spinner.getSelectedItemPosition();

                    try
                    {
                        fontSizeInt = Integer.parseInt(items[position]);
                    }
                    catch (NumberFormatException e)
                    {
                        fontSizeInt = 12; // Default size.
                    }
                    et.setTextSize(TypedValue.COMPLEX_UNIT_SP, (float) fontSizeInt);
                      // TODO Auto-generated method stub
                  }
                  @Override
                  public void onNothingSelected(AdapterView<?> arg0) {
                      // TODO Auto-generated method stub
                  }
              }
          );

    spinner1 = (Spinner)findViewById(R.id.spinner1);
    ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
        this, android.R.layout.simple_spinner_item, f_items);
    spinner1.setAdapter(adapter1);
    spinner1.setOnItemSelectedListener(
              new AdapterView.OnItemSelectedListener() {
                  @Override
                  public void onItemSelected(AdapterView<?> arg0, View arg1,
                          int arg2, long arg3) {
                    int position = spinner1.getSelectedItemPosition();

                    try
                    {
            if (position == 0 )
         { 
                Typeface f = Typeface.createFromAsset(getBaseContext().getAssets(),"font/TimesNewRoman.ttf");
         et.setTypeface(f); }
            if (position == 1 )
            { 
                Typeface f = Typeface.createFromAsset(getBaseContext().getAssets(),"font/arial.ttf");
            et.setTypeface(f); }
                    }
                    catch (NumberFormatException e)
                    {
                        // 
                    }

                      // TODO Auto-generated method stub
                  }

                @Override
                  public void onNothingSelected(AdapterView<?> arg0) {
                      // TODO Auto-generated method stub
                  }
              }
          );
    addListenerOnImageg1() ;
   ;
    et = (EditText) findViewById(R.id.et);

}



   public void addListenerOnImageg1() {

    final Context context = this;

    imageView = (ImageView) findViewById(R.id.g1);

    imageView.setOnClickListener(new OnClickListener() {



        @Override
        public void onClick(View arg0) {

            Intent intent = new Intent(context, g1.class);
                        startActivity(intent);
      Intent intent1 = new Intent(context , g1.class); 
      intent1.putExtra("fn" , et.getText().toString());
      intent1.putExtra("font_size", fontSizeInt);
      startActivity(intent1);


        }

    }); }

}); }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}
 }
公开课毕业扩展了ActionBarActivity{
图像视图图像视图;
纺纱机;
int fontSizeInt;
字符串[]项={“12”、“16”、“18”、“20”、“24”、“28”、“30”};
喷丝器喷丝器1;
int fontSizeFamily;
字符串[]f_items={“Times New Roman”,“Arial”,“sans serif”,“20”,“24”,“28”,“30”};
编辑文本;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局、分级);
微调器=(微调器)findViewById(R.id.spinner);
ArrayAdapter适配器=新的ArrayAdapter(
这个,android.R.layout.simple\u微调器(项目,项目);
旋转器。设置适配器(适配器);
spinner.setOnItemSelectedListener(
新建AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
int position=spinner.getSelectedItemPosition();
尝试
{
fontSizeInt=Integer.parseInt(项目[位置]);
}
捕获(数字格式)
{
fontSizeInt=12;//默认大小。
}
et.setTextSize(TypedValue.COMPLEX\u UNIT\u SP,(float)fontSizeInt);
//TODO自动生成的方法存根
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
}
);
喷丝头1=(喷丝头)findViewById(R.id.spinner1);
ArrayAdapter适配器1=新的ArrayAdapter(
这个,android.R.layout.simple_微调器(f_项,f_项);
喷丝头1.设置适配器(适配器1);
喷丝头1.SetoniMselectedListener(
新建AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
int position=spinner1.getSelectedItemPosition();
尝试
{
如果(位置==0)
{ 

Typeface f=Typeface.createFromAsset(getBaseContext().getAssets(),“font/TimesNewRoman.ttf”); et.setTypeface(f);} 如果(位置==1) {
Typeface f=Typeface.createFromAsset(getBaseContext().getAssets(),“font/arial.ttf”); et.setTypeface(f);} } 捕获(数字格式) { // } //TODO自动生成的方法存根 } @凌驾 未选择公共无效(AdapterView arg0){ //TODO自动生成的方法存根 } } ); AddListenerOnImage1(); ; et=(EditText)findViewById(R.id.et); } public void addListenerOnImage1(){ 最终上下文=此; imageView=(imageView)findViewById(R.id.g1); setOnClickListener(新的OnClickListener(){ @凌驾 公共void onClick(视图arg0){ 意图=新意图(上下文,g1.class); 星触觉(意向); 意图intent1=新意图(上下文,g1.class); intent1.putExtra(“fn”,et.getText().toString()); intent1.putExtra(“字体大小”,字体大小); 星触觉(intent1); } }); } }); } @凌驾 公共布尔onCreateOptions菜单(菜单){ //为菜单充气;这会将项目添加到操作栏(如果存在)。 getMenuInflater().充气(R.menu.main,menu); 返回true; } @凌驾 公共布尔值onOptionsItemSelected(菜单项项){ //处理操作栏项目单击此处。操作栏将 //自动处理Home/Up按钮上的点击,只要 //在AndroidManifest.xml中指定父活动时。 int id=item.getItemId(); if(id==R.id.action\u设置){ 返回true; } 返回super.onOptionsItemSelected(项目); } }
这是我的日志

 12-09 22:04:27.670: E/AndroidRuntime(1858): FATAL EXCEPTION: main
 12-09 22:04:27.670: E/AndroidRuntime(1858): java.lang.RuntimeException: native typeface cannot be made
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at android.graphics.Typeface.<init>(Typeface.java:147)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at android.graphics.Typeface.createFromAsset(Typeface.java:121)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at com.example.invitationcard.Graduation$2.onItemSelected(Graduation.java:92)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at android.widget.AdapterView.fireOnSelected(AdapterView.java:882)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at android.widget.AdapterView.access$200(AdapterView.java:48)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:848)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at android.os.Handler.handleCallback(Handler.java:605)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at android.os.Handler.dispatchMessage(Handler.java:92)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at android.os.Looper.loop(Looper.java:137)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at android.app.ActivityThread.main(ActivityThread.java:4424)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at java.lang.reflect.Method.invokeNative(Native Method)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at java.lang.reflect.Method.invoke(Method.java:511)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
 12-09 22:04:27.670: E/AndroidRuntime(1858):    at dalvik.system.NativeStart.main(Native Method)
12-09 22:04:27.670:E/AndroidRuntime(1858):致命异常:main
12-09 22:04:27.670:E/AndroidRuntime(1858):java.lang.RuntimeException:无法生成本机字体
12-09 22:04:27.670:E/AndroidRuntime(1858):在安卓上。图形。字体。(Typeface.java:147)
12-09 22:04:27.670:E/AndroidRuntime(1858):在android.graphics.Typeface.createFromAsset(Typeface.java:121)上
12-09 22:04:27.670:E/AndroidRuntime(1858):在com.example.invitationcard.gradication$2.0被选中(gradication.java:92)
12-09 22:04:27.670:E/AndroidRuntime(1858):在android.widget.AdapterView.fireOnSelected(AdapterView.java:882)
12-09 22:04:27.670:E/AndroidRuntime(1858):在android.widget.AdapterView.access$200(AdapterView.java:48)
12-09 22:04:27.670:E/AndroidRuntime(1858):在android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:848)
12-09 22:04:27.670:E/AndroidRuntime(1858):在android.os.Handler.handleCallback(Handler.java:605)上
12-09 22:04:27.670:E/AndroidRuntime(1858):在android.os.Handler.dispatchMessage(Handler.java:92)上
12-09 22:04:27.670:E/AndroidRuntime(1858):在android.os.Looper.loop(Looper.java:137)
12-09 22:04:27.670:E/AndroidRuntime(1858):在android.app.ActivityThread.main(ActivityThread.java:4424)上
12-09 22:04:27.670:E/AndroidRuntime(1858):位于java.lang.reflect.Method.Invokenactive(本机方法)
12-09 22:04:27.670:E/AndroidRuntime(1858):位于java.lang.reflect.Method.invoke(Method