0
누구든지 다음 logcat 불만에 대해 설명 할 수 있습니까?android runtimeException
02-08 20:40:04.383: E/AndroidRuntime(10227): FATAL EXCEPTION: main
02-08 20:40:04.383: E/AndroidRuntime(10227): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.decko/com.example.decko.Game}: android.view.InflateException: Binary XML file line #27: Error inflating class android.widget.ImageButton
02-08 20:40:04.383: E/AndroidRuntime(10227): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
02-08 20:40:04.383: E/AndroidRuntime(10227): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
02-08 20:40:04.383: E/AndroidRuntime(10227): at..`
편집 : 다음은 Game 클래스의 Java 코드입니다.
package com.example.decko;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.GridLayout;
import android.widget.HorizontalScrollView;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
public class Game extends Activity {
GridLayout parentGrid;
HorizontalScrollView parentLinear;
LinearLayout innerLinearLayout;
private deckWrapper deck;
ImageButton deckButton;
ImageView pilePosition;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
//Fill up and shuffle cards
this.deck = new deckWrapper();
//..Done
// Defining layout hierarchy
parentGrid = (GridLayout) findViewById(R.id.GridLayout1);
parentLinear = (HorizontalScrollView) findViewById(R.id.horizontalScrollView1);
innerLinearLayout = (LinearLayout) findViewById(R.id.innerLinearLayout);
//..Done
//Define Deck and Card positions
deckButton = (ImageButton) findViewById(R.id.deck);
pilePosition = (ImageView) findViewById(R.id.cardpile);
//..Done
}
public void deckButtonOnClick(View v) {
this.pickCard();
}
protected void pickCard() {
ImageView imageView = new ImageView(getApplicationContext());
imageView.setImageResource(deck.takeCard());
imageView.setAdjustViewBounds(true);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(6, 0, 6, 0);
params.gravity = Gravity.TOP | Gravity.LEFT;
imageView.setLayoutParams(params);
imageView.setTag("1");
imageView.setOnClickListener(new MyOnClickListener()); // TODO
innerLinearLayout.addView(imageView);
}
}
나는 지저분한 알고있다. 문제는 정기적 인 API 14 테마에서 Android.holo로 테마를 변경했을 때 발생했습니다. 또한 xml 파일의 각 버튼 clicklistener를 다음과 같이 정의했습니다.
<ImageButton
android:id="@+id/deck"
android:layout_column="0"
android:layout_gravity="center"
android:layout_marginBottom="50dp"
android:layout_marginRight="60dp"
android:layout_row="0"
android:onClick="deckButtonOnClick"
android:background="@style/AppBaseTheme"
android:src="@drawable/deck_1" />
레이아웃 코드 (xml)를 추가하십시오. –
일반적으로 XML 레이아웃 파일에 오류가 있음을 의미합니다. – iagreen
ImageButton을 부풀리기 위해 노력하고있을 수도 있지만 실제로는 Button 또는 oposite입니다. – Magakahn