को बढ़ाने में त्रुटि मुझे मेरी परियोजना चलाने की कोशिश करते समय त्रुटि संदेश मिलता है। मैं Android के लिए टिक टैक टो बनाना चाहते हैं, और मैं कस्टम दृश्य का उपयोग नीचे टिक टैक टो बोर्ड बनाने के लिए:android.view.InflateException: बाइनरी एक्सएमएल फ़ाइल लाइन # 7: कक्षा
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>
तो मैं अपने ग्रहण 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
कृपया, हमें अपने logcat की अधिक लाइनों दिखा। मेरा मानना है कि दुर्घटना का कारण बोर्ड के कन्स्ट्रक्टर में कहीं भी सूचीबद्ध है। – Olegas
@ ओलेगस, यहां मेरी पूरी लॉगकट लाइनें हैं। मैंने इसे अपने पहले पोस्ट – Spongeboss