0
발견 된 오류의 stacktrace는 다음과 같습니다. 매우 간단한 코드이고 그 이유를 알 수 없습니다. 문제를 해결해보십시오.MainActivity 스레드의 ClasscastException
는03-04 21:09:11.837: E/AndroidRuntime(902): FATAL EXCEPTION: main
03-04 21:09:11.837: E/AndroidRuntime(902): java.lang.RuntimeException: Unable to start activity ComponentInfo{candyhive.bitcream.candy/candyhive.bitcream.candy.Loadscreen}: java.lang.ClassCastException: android.widget.TextView
03-04 21:09:11.837: E/AndroidRuntime(902): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
03-04 21:09:11.837: E/AndroidRuntime(902): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
03-04 21:09:11.837: E/AndroidRuntime(902): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
03-04 21:09:11.837: E/AndroidRuntime(902): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
03-04 21:09:11.837: E/AndroidRuntime(902): at android.os.Handler.dispatchMessage(Handler.java:99)
03-04 21:09:11.837: E/AndroidRuntime(902): at android.os.Looper.loop(Looper.java:123)
03-04 21:09:11.837: E/AndroidRuntime(902): at android.app.ActivityThread.main(ActivityThread.java:3683)
03-04 21:09:11.837: E/AndroidRuntime(902): at java.lang.reflect.Method.invokeNative(Native Method)
03-04 21:09:11.837: E/AndroidRuntime(902): at java.lang.reflect.Method.invoke(Method.java:507)
03-04 21:09:11.837: E/AndroidRuntime(902): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-04 21:09:11.837: E/AndroidRuntime(902): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-04 21:09:11.837: E/AndroidRuntime(902): at dalvik.system.NativeStart.main(Native Method)
03-04 21:09:11.837: E/AndroidRuntime(902): Caused by: java.lang.ClassCastException: android.widget.TextView
03-04 21:09:11.837: E/AndroidRuntime(902): at candyhive.bitcream.candy.Loadscreen.onCreate(Loadscreen.java:87)
03-04 21:09:11.837: E/AndroidRuntime(902): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-04 21:09:11.837: E/AndroidRuntime(902): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
03-04 21:09:11.837: E/AndroidRuntime(902): ... 11 more
코드 : 그것은 라인 IV2 = findViewById를 (R.id.imageview2)에 오류가 표시
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loadscreen);
e1= (EditText) findViewById(R.id.editText1);
r1=new Random();
iv1 = (ImageView) findViewById(R.id.imageView1);
iv1.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
s= e1.getText().toString();
if(s.matches("")){
int time=2000;
Toast.makeText(Loadscreen.this, "Please specify the level", time).show();
}
else{
int str= Integer.valueOf(s);
if(str>0 && str<11){
calculate(str);
r2=new Random();
int nxt = r2.nextInt(2);
if(nxt==0){
Intent i1= new Intent(Loadscreen.this,Game.class);
i1.putExtra("music", music);
i1.putExtra("sound", sound);
i1.putExtra("max",max);
i1.putExtra("candymax", candymax);
startActivity(i1);
Loadscreen.this.finish();
}
else{
Intent i1= new Intent(Loadscreen.this,Game01.class);
i1.putExtra("music", music);
i1.putExtra("sound", sound);
i1.putExtra("max",max);
i1.putExtra("candymax", candymax);
startActivity(i1);
Loadscreen.this.finish();
}
}
else{
int time=2000;
Toast.makeText(Loadscreen.this, "Enter a valid level", time).show();
}
}
}
});
iv2= (ImageView) findViewById(R.id.imageView2);
iv2.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
AlertDialog.Builder build= new AlertDialog.Builder(Loadscreen.this);
build.setMessage("Are you sure you want to quit the game?");
build.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Loadscreen.this.finish();
}
});
build.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
arg0.cancel();
}
});
build.setCancelable(false);
build.show();
}
});
}
는 Classcast 예외를 말한다. 이 코드에 무슨 문제가 있다고 제안 하시겠습니까? 논리적 인 (
1) 어느 쪽이든 당신은 R.id.imageView2
처럼 이름 내에 TextView
이름, 따라서 당신의 findViewById()
방법은 반환되며, 그것은 ImageView
에 주조 할 수 없습니다 덕분에
은 ImageView2 또는 ImageView입니까? Post R.layout.activity_loadscreen – Blackbelt
layout.activity_loadscreen을 게시 할 수 있습니까? –