Android.view.InflateException: двоичная строка XML-файла # 7: ошибка раздувания класса

При попытке запустить мой проект появляется сообщение об ошибке. Я хочу создать Tic Tac Toe для Android, и я использую пользовательский вид ниже для создания платы Tic Tac Toe:

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 < tile.length; i++) { for (int j = 0; j < 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 <= boardWidth; i++) { canvas.drawLine(xs * i, 0, xs * i, this.getHeight(), brush); } for (int i = 0; i <= 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 < boardWidth; row++) { for (int colmn = 0; colmn < 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 } } } } 

Затем я поместил его в макет действия на основе XML следующим образом:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <org.me.TicTacToe.ui.TicTacToeBoard android:id="@+id/game1" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> 

Таким образом, я получаю фатальную ошибку исключения в моем окне Eclipse LogCat:

 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 

Как это исправить?

Полные строки Logcat:

 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 

Вам не хватает конструктора для TicTacToeBoard(Context, Attributeset) . См. Этот вопрос , например.

EDIT: Это прямо в LogCat, который вы только что опубликовали:

  Caused by: java.lang.NoSuchMethodException: TicTacToeBoard(Context,AttributeSet) 
Intereting Posts
Отсутствует ключ api_key / current с Google Services 3.0.0 и ключом API Карт в build.gradle Различные подписки apk в Android Маржа между заголовками X-Axis и ярлыками X-Axis в AChartEngine Android – доступ к активам тестового приложения Android: как отобразить растровое изображение в WebView? SetPreviewDisplay vs setPreviewTexture Loader и LoaderManager – как определить, активен ли текущий загрузчик и работает ли он? Как открыть AlertDialog с экрана предпочтений? «Запуск эмулятора для AVD», затем Panic: не удалось открыть … » Android.widget.TextView не может быть добавлен в android.view.ViewGroup Я получаю исключение базы данных не закрытое исключение в SQLite (Android), но я явно закрываю свою базу данных … Help? Android: SQLiteException: не ошибка на всех устройствах Разработка Android: наличие AsyncTask в отдельном файле класса Recycler View Add Remove Item Анимация, не отображаемая в swapCursor Построение FFmpeg для Android для использования аргументов командной строки