2017-01-10 14 views
1

次のコードを使用して、フォントサイズを中、高、または小に変更しています。テキスト表示の設定中にそのようなメソッドエラーが発生しない

java.lang.NoSuchMethodError: No virtual method setTextAppearance(I)V in class Landroid/widget/TextView; or its super classes (declaration of 'android.widget.TextView' appears in /system/framework/framework.jar) 

がなぜこのようなエラーを取得しています:getFontSize()は、次のエラーを取得し、これらのサイズ

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) 
    holder.title.setTextAppearance(new AppController().getFontSize()); 
else 
    holder.title.setTextAppearance(mContext, new AppController().getFontSize()); 

しかし、イムのいずれかを返しますか?

+1

ここで問題をご覧くださいhttps://code.google.com/p/android/issues/detail?id=183542 – rafsanahmad007

+0

コンパイラが失敗するはずですが、実際にはクラッシュしないようです。 @ rafsanahmad007リンクによると、@ depfsatedメソッドに関連していると思います。 –

+0

'新しいAppController()。getFontSize()'は '@StyleRes int'(スタイルリソースを表す' int')を返しますか? –

答えて

2

TextView::setTextAppearance@android:style/TextAppearance.Material.Body1のように)プロジェクト内のスタイルリソースを識別する整数値が必要です。 これがあなたの意図なら、あなたのgetFontSize()メソッドが有効なIDを返すことを確認してください。

しかし実際には、TextViewのsetTextSize(float size)メソッドを使用して行う必要があるフォントサイズを実際に設定しようとしていると思います。

関連する問題