2013-10-16 45 views
-6

为什么eclipse不让我编译这个。 我想让自己点击一个按钮,然后Edittext数据转到Textview。然后从那里我想textView通过按另一个Button被转换成一个条形码,所以我有2 Buttons和2 textViews和1 editTexts为什么我得到这些错误,java truetype错误?

请告知如何做到这一点或者I,M错

public class cc extends Activity { 

EditText inputc; 
TextView outputc; 
TextView tv1; 
ImageView iv; 
Button b; 

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.cc); 

inputc = (EditText) findViewById(R.id.ccinput); 
outputc = (TextView) findViewById(R.id.outputc); 
Button send = (Button) findViewById(R.id.button); 
final TextView tv1 = (TextView) findViewById(R.id.outputc); 
tv1.setDrawingCacheEnabled(true); 

//To change to code 39 barCode font 
Typeface barcodefont = Typeface.createFromAsset(getAssets(), "fonts/IDAutomationHC39M_FREE.otf");   
TextView tv = (TextView) findViewById(R.id.outputc);   
tv.setTypeface(barcodefont); 

send.setOnClickListener (new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     tv1.buildDrawingCache(); 
     iv.setImageBitmap(tv1.getDrawingCache()); 
     outputc.setText((inputc.getText())); 
    } 
}); 

} 
} 

ADTIONAL INFO。 我编了,但现在我得到的错误,这里是logcat的:

10-16 15:41:11.095: E/AndroidRuntime(5822): FATAL EXCEPTION: main 
10-16 15:41:11.095: E/AndroidRuntime(5822): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.barcodedisplayer/com.example.barcodedisplayer.cc}: java.lang.RuntimeException: native typeface cannot be made 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2355) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at android.app.ActivityThread.access$600(ActivityThread.java:156) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at android.os.Handler.dispatchMessage(Handler.java:99) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at android.os.Looper.loop(Looper.java:137) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at android.app.ActivityThread.main(ActivityThread.java:5303) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at java.lang.reflect.Method.invoke(Method.java:525) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at dalvik.system.NativeStart.main(Native Method) 
10-16 15:41:11.095: E/AndroidRuntime(5822): Caused by: java.lang.RuntimeException: native typeface cannot be made 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at android.graphics.Typeface.<init>(Typeface.java:175) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at android.graphics.Typeface.createFromAsset(Typeface.java:149) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at com.example.barcodedisplayer.cc.onCreate(cc.java:32) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at android.app.Activity.performCreate(Activity.java:5207) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309) 
10-16 15:41:11.095: E/AndroidRuntime(5822):  ... 11 more 
+2

什么错误? – Raghunandan

+9

如果编译器实际发生了抱怨,请包括***错误消息***和***请提供错误***。 – fvu

+1

这个问题的答案将更好地作为关于如何使用编译器以及代码所具有的任何特定问题的教训。 – nhgrif

回答

2

错误在你的logcat指向该行:

Typeface barcodefont = Typeface.createFromAsset(getAssets(), "fonts/IDAutomationHC39M_FREE.otf");

确保fonts/IDAutomationHC39M_FREE.otf存在,这不是腐败,那名大小写完全匹配。

另外,如果上述方法不工作,尝试在这里找到了建议:Custom fonts in android

+0

嗨,我知道这种情况我有双重和三重检查,单词和语法是正确的。然而,我仍然得到错误 –

+1

如果可能,然后尝试使用不同的字体,如TTF字体,因为[TTF显然更好支持](http://stackoverflow.com/questions/1426244/use-external-fonts-in-机器人)。如果你可以得到另一种字体的工作,那么我们可以排除字体本身是问题 – Klazen108

+0

我已经使用了大约5个.TTF字体,其中没有一个h =似乎工作。谢谢 –

1

你ImageView的iv未初始化。您将获得NullPointerException。初始化iv

iv = (ImageView) findViewById(R.id.yourimageviewid); 

这是一个错误。正如@NickT指出,这将是一个运行时错误。

你的TextView outputc和TV1都具有相同ID R.id.outputc

outputc = (TextView) findViewById(R.id.outputc); 
    final TextView tv1 = (TextView) findViewById(R.id.outputc); 

初始化,你有

TextView tv = (TextView) findViewById(outputc); 
// remove this line or use R.id.yourtextviewid 
// outputc is a textview 

请确保您有IDAutomationHC39M_FREE.otf下/租入资产价值/字体。

+4

这将是一个运行时错误 – NickT

+0

不会导致他正在谈论的编译错误,但肯定是最终编译时的运行时问题。 – dymmeh

+0

@NickT赞同。 – Raghunandan

1

有几件事错在这里:

你已经宣布TextView tv1;所以你不必再做了final TextView tv1 = (TextView) findViewById(R.id.outputc);

您还mentionned:

,所以我有2个按钮和2个textViews和1个editTexts altogther

public class cc extends Activity {

EditText inputc; 
TextView outputc; 
TextView tv1; 
ImageView iv; 
Button b; 
Button send; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.cc); 

    inputc = (EditText) findViewById(R.id.ccinput); 
    outputc = (TextView) findViewById(R.id.outputc); 
    send = (Button) findViewById(R.id.button); 
    tv1 = (TextView) findViewById(R.id.outputc); 
    tv1.setDrawingCacheEnabled(true); 

    //To change to code 39 barCode font 
    Typeface barcodefont = Typeface.createFromAsset(getAssets(), 
       "fonts/IDAutomationHC39M_FREE.otf"); 


    outputc.setTypeface(barcodefont); 

    send.setOnClickListener (new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      tv1.buildDrawingCache(); 
      iv.setImageBitmap(tv1.getDrawingCache()); 
      outputc.setText((inputc.getText())); 
     } 
    }); 
} 
} 
+0

Hi @meda 。非常感谢谢谢。但是现在我正面临另一个错误'10-16 15:31:32.027:E/AndroidRuntime(3110):java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.barcodedisplayer/com.example.barcodedisplayer.cc}: java.lang.RuntimeException:本地字体不能作出' –