2

以前に投稿されたこのエラーを見たことがありますが、どの回答も問題を解決していないように見えるため、何が起こっているのかよくわかりません。xml でクラスを膨張させようとすると失敗します。

XML:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#EEE"
    >
    <android.view.SurfaceView
        android:id="@+id/preview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    </android.view.SurfaceView>
    <com.commonsware.android.picture.PictureDemo.DrawOnTop
        android:id="@+id/grid"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    </com.commonsware.android.picture.PictureDemo.DrawOnTop>
</FrameLayout>

クラス:

class DrawOnTop extends View 
  { 

      public DrawOnTop(Context context) 
      { 
          super(context); 
      } 

      public DrawOnTop(Context context, AttributeSet attrs) 
      { 
          super(context, attrs); 
      } 

      public DrawOnTop(Context context, AttributeSet attrs, int defStyle) 
      { 
          super(context, attrs, defStyle); 

      } 

      @Override 
      protected void onDraw(Canvas canvas) 
      { 
          Paint paint = new Paint(); 
          paint.setStyle(Paint.Style.STROKE); 
          paint.setColor(Color.BLACK); 
          canvas.drawText("Test Text", 10, 10, paint); 
          canvas.drawBitmap(bitmap, 0, 0, null);
          super.onDraw(canvas); 
      } 
  } 

エラー:

02-11 16:06:25.456: E/AndroidRuntime(11717): Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class com.commonsware.android.picture.PictureDemo.DrawOnTop

私はすべてのコンストラクターを持っていますが、他に問題はありません。何が欠けていますか?

4

1 に答える 1

3

DrawOnTop を同じパッケージ内の別のファイルに分離してみてください。

于 2013-02-11T23:11:59.227 に答える