読者です 読者をやめる 読者になる 読者になる

Caused by: android.view.inflatingException: Binary XML file line #N

自作classをlayoutのxmlに指定した時、

Caused by: android.view.inflatingException: Binary XML file line #..

というエラーが起きてしまいました。

その自作classは、Viewを継承したclassで、

package jp.test;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.view.View;

public class GraphicView extends View {

public GraphicView(Context context) {

super(context);

}

@Override

public void onDraw(Canvas canvas) {

// 座標系がわかるような罫線を引く

Paint paint = new Paint();

paint.setColor(Color.rgb(255, 255, 0));

paint.setStrokeWidth(10);

canvas.drawLine(10, 40, 300, 70, paint);

paint.setStrokeWidth(10);

paint.setAntiAlias(true);

}

}

※↑すみません、<p>タグがどうやっても入ってしまうので、除いてご利用いただければと思いますm(_ _)m

という中身でした。

この問題は、

package jp.test;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.util.AttributeSet;

import android.view.View;

public class GraphicView extends View {

public GraphicView(Context context,AttributeSet attrs) {

super(context,attrs);

}

@Override

public void onDraw(Canvas canvas) {

// 座標系がわかるような罫線を引く

Paint paint = new Paint();

paint.setColor(Color.rgb(255, 255, 0));

paint.setStrokeWidth(10);

canvas.drawLine(10, 40, 300, 70, paint);

paint.setStrokeWidth(10);

paint.setAntiAlias(true);

}

}

というように、AttributeSetを持つコンストラクタに変更することで、

無事に修正出来まして、動作確認も出来ました。