title: android.view.InflateException: Binary XML file line #7: Error inflating class
body: <p>I get error message when trying to run my Project. I want to create Tic Tac Toe for Android, and I use custom View below to create Tic Tac Toe board:</p>
  
  <pre><code>package org.me.TicTacToe.ui;
  
  import android.content.Context;
  import android.graphics.Canvas;
  import android.graphics.Paint;
  import android.graphics.Paint.Style;
  import android.view.MotionEvent;
  import android.view.View;
  
  public class TicTacToeBoard extends View {
  
      private Tile[][] tile = null;   //Abstract class to create tiles in Tic Tac Toe Board
      int boardWidth = 3; //It mean Tic Tac Toe board is consists of 3x3 tiles
      private int width;
      private int height;
      private Paint brush;
  
      public TicTacToeBoard(Context context) {
          super(context);
  
          brush = new Paint();
          this.brush.setARGB(255, 0, 0, 0);
          this.brush.setAntiAlias(true);
          this.brush.setStyle(Style.STROKE);
          this.brush.setStrokeWidth(5);
  
          width = this.getWidth();
          height = this.getHeight();
  
          initBoard();
      }
  
      @Override
      protected void onDraw(Canvas canvas) {
          for (int i = 0; i &lt; tile.length; i++) {
              for (int j = 0; j &lt; tile[0].length; j++) {
                  tile[i][j].draw(canvas, getResources(), j, i,
                      (this.getWidth() + 3) / tile.length,
                      this.getHeight() / tile[0].length);
              }
          }
  
          int xs = this.getWidth() / boardWidth;
          int ys = this.getHeight() / boardWidth;
          for (int i = 0; i &lt;= boardWidth; i++) {
              canvas.drawLine(xs * i, 0, xs * i, this.getHeight(), brush);
          }
          for (int i = 0; i &lt;= boardWidth; i++) {
              canvas.drawLine(0, ys * i, this.getWidth(), ys * i, brush);
          }
  
          super.onDraw(canvas);
      }
  
      public void initBoard(){
          tile = new Tile[boardWidth][boardWidth];
  
          int xss = width / boardWidth;
          int yss = height / boardWidth;
  
          for (int row = 0; row &lt; boardWidth; row++) {
              for (int colmn = 0; colmn &lt; boardWidth; colmn++) {
                  tile[row][colmn] = new TileEmpty(xss * colmn, row * yss);
                  // TileEmpty is extend class from Tile.
                  // TileEmpty represent empty tile in Tic Tac Toe
              }
          }
      }
  }
  </code></pre>
  
  <p>Next, I place it in XML based activity layout like this:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:orientation="vertical" &gt;
  
      &lt;org.me.TicTacToe.ui.TicTacToeBoard
          android:id="@+id/game1"
          android:layout_width="match_parent"
          android:layout_height="match_parent" /&gt;
  
  &lt;/LinearLayout&gt;
  </code></pre>
  
  <p>So I get fatal exception error in my Eclipse LogCat window:</p>
  
  <pre><code>AndroidRuntime(329): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.me.TicTacToe/org.me.TicTacToe.ui.TicTacToeActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class org.me.TicTacToe.ui.TicTacToeBoard
  </code></pre>
  
  <p>How to fix it?</p>
  
  <p>Full Logcat lines:</p>
  
  <pre><code>02-12 10:22:31.989: D/AndroidRuntime(329): Shutting down VM
  02-12 10:22:31.989: W/dalvikvm(329): threadid=1: thread exiting with uncaught exception (group=0x40015560)
  02-12 10:22:32.008: E/AndroidRuntime(329): FATAL EXCEPTION: main
  02-12 10:22:32.008: E/AndroidRuntime(329): java.lang.RuntimeException:
                      Unable to start activity ComponentInfo{org.me.TicTacToe/org.rme.TicTacToe.ui.TicTacToeActivity}:
                      android.view.InflateException: Binary XML file line #18: Error inflating class org.me.TicTacToe.ui.TicTacToeBoard
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.os.Handler.dispatchMessage(Handler.java:99)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.os.Looper.loop(Looper.java:123)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.app.ActivityThread.main(ActivityThread.java:3683)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at java.lang.reflect.Method.invokeNative(Native Method)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at java.lang.reflect.Method.invoke(Method.java:507)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at dalvik.system.NativeStart.main(Native Method)
  02-12 10:22:32.008: E/AndroidRuntime(329): Caused by: android.view.InflateException: Binary XML file line #7:
                      Error inflating class org.me.TicTacToe.ui.TicTacToeBoard
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.view.LayoutInflater.createView(LayoutInflater.java:508)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.app.Activity.setContentView(Activity.java:1657)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at org.me.TicTacToe.ui.TicTacToeActivity.onCreate(TicTacToeActivity.java:24)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
  02-12 10:22:32.008: E/AndroidRuntime(329):  ... 11 more
  02-12 10:22:32.008: E/AndroidRuntime(329): Caused by: java.lang.NoSuchMethodException: TicTacToeBoard(Context,AttributeSet)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at java.lang.Class.getMatchingConstructor(Class.java:643)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at java.lang.Class.getConstructor(Class.java:472)
  02-12 10:22:32.008: E/AndroidRuntime(329):  at android.view.LayoutInflater.createView(LayoutInflater.java:480)
  02-12 10:22:32.008: E/AndroidRuntime(329):  ... 21 more
  </code></pre>