안드로이드 개발 질문/답변
(글 수 45,052)
아 진짜 여기 질문하기 계속죄송해지네요..
Logcat에 또 오류가 뜹니다...
아.... 오류 올려보겠습니다
04-18 12:21:54.297: E/AndroidRuntime(213): Uncaught handler: thread main exiting due to uncaught exception
04-18 12:21:54.317: E/AndroidRuntime(213): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.MyFuture/com.MyFuture.value2}; have you declared this activity in your AndroidManifest.xml?
04-18 12:21:54.317: E/AndroidRuntime(213): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1404)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.app.Activity.startActivityForResult(Activity.java:2749)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.app.Activity.startActivity(Activity.java:2855)
04-18 12:21:54.317: E/AndroidRuntime(213): at com.MyFuture.MainActivity$1.onClick(MainActivity.java:75)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.View.performClick(View.java:2364)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.View.onTouchEvent(View.java:4179)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.View.dispatchTouchEvent(View.java:3709)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-18 12:21:54.317: E/AndroidRuntime(213): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
04-18 12:21:54.317: E/AndroidRuntime(213): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
04-18 12:21:54.317: E/AndroidRuntime(213): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.os.Handler.dispatchMessage(Handler.java:99)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.os.Looper.loop(Looper.java:123)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.app.ActivityThread.main(ActivityThread.java:4363)
04-18 12:21:54.317: E/AndroidRuntime(213): at java.lang.reflect.Method.invokeNative(Native Method)
04-18 12:21:54.317: E/AndroidRuntime(213): at java.lang.reflect.Method.invoke(Method.java:521)
04-18 12:21:54.317: E/AndroidRuntime(213): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-18 12:21:54.317: E/AndroidRuntime(213): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-18 12:21:54.317: E/AndroidRuntime(213): at dalvik.system.NativeStart.main(Native Method)
04-18 12:21:54.317: E/AndroidRuntime(213): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.MyFuture/com.MyFuture.value2}; have you declared this activity in your AndroidManifest.xml?
04-18 12:21:54.317: E/AndroidRuntime(213): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1404)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.app.Activity.startActivityForResult(Activity.java:2749)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.app.Activity.startActivity(Activity.java:2855)
04-18 12:21:54.317: E/AndroidRuntime(213): at com.MyFuture.MainActivity$1.onClick(MainActivity.java:75)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.View.performClick(View.java:2364)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.View.onTouchEvent(View.java:4179)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.View.dispatchTouchEvent(View.java:3709)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
04-18 12:21:54.317: E/AndroidRuntime(213): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
04-18 12:21:54.317: E/AndroidRuntime(213): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
04-18 12:21:54.317: E/AndroidRuntime(213): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.os.Handler.dispatchMessage(Handler.java:99)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.os.Looper.loop(Looper.java:123)
04-18 12:21:54.317: E/AndroidRuntime(213): at android.app.ActivityThread.main(ActivityThread.java:4363)
04-18 12:21:54.317: E/AndroidRuntime(213): at java.lang.reflect.Method.invokeNative(Native Method)
04-18 12:21:54.317: E/AndroidRuntime(213): at java.lang.reflect.Method.invoke(Method.java:521)
04-18 12:21:54.317: E/AndroidRuntime(213): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-18 12:21:54.317: E/AndroidRuntime(213): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-18 12:21:54.317: E/AndroidRuntime(213): at dalvik.system.NativeStart.main(Native Method)
Logcat에 이렇게 오류가 뜹니다... 하진짜.. 미치겠습니다.. 인터넷뒤져도 뭐 모르곘고..
혹시해서 소스랑 메니페스트도 올려봅니다
package com.MyFuture;
import java.util.Random;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private boolean misBackButtonTouched = false;
int Sungbul;
int value;
EditText edit;
EditText Name;
int Check1;
int Check2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.imgbtn02).setOnClickListener(myButtonClick);
findViewById(R.id.imgbtn01).setOnClickListener(myButtonClick);
edit = (EditText)findViewById(R.id.editText);
private boolean misBackButtonTouched = false;
int Sungbul;
int value;
EditText edit;
EditText Name;
int Check1;
int Check2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.imgbtn02).setOnClickListener(myButtonClick);
findViewById(R.id.imgbtn01).setOnClickListener(myButtonClick);
edit = (EditText)findViewById(R.id.editText);
}//End of onCreate
@Override
public void onBackPressed(){
if(misBackButtonTouched == false){
misBackButtonTouched = true;
@Override
public void onBackPressed(){
if(misBackButtonTouched == false){
misBackButtonTouched = true;
Toast.makeText(MainActivity.this,"한번더 누르시면 종료됩니다 \n 앙대끄지마 ㅠㅠ",Toast.LENGTH_SHORT).show();
}
else if (misBackButtonTouched == true){
finish();
}
}
Button.OnClickListener myButtonClick = new Button.OnClickListener(){
public void onClick(View v){
switch(v.getId()){
case R.id.imgbtn01 :
edit = Name;
Toast.makeText(MainActivity.this, "이름이 입력되었습니다", Toast.LENGTH_SHORT).show();
Check1 = 1;
break;
case R.id.imgbtn02 :
int r = new Random().nextInt(4) +1 ;
value = r;
Intent goIntent = new Intent();
if(value ==1 ){
}
else if (misBackButtonTouched == true){
finish();
}
}
Button.OnClickListener myButtonClick = new Button.OnClickListener(){
public void onClick(View v){
switch(v.getId()){
case R.id.imgbtn01 :
edit = Name;
Toast.makeText(MainActivity.this, "이름이 입력되었습니다", Toast.LENGTH_SHORT).show();
Check1 = 1;
break;
case R.id.imgbtn02 :
int r = new Random().nextInt(4) +1 ;
value = r;
Intent goIntent = new Intent();
if(value ==1 ){
goIntent.setClass(MainActivity.this, value1.class);
}else if(value == 2){
goIntent.setClass(MainActivity.this, value2.class);
}else if(value == 3){
goIntent.setClass(MainActivity.this, value3.class);
}else if(value == 4){
goIntent.setClass(MainActivity.this, value4.class);
}
startActivity(goIntent);
break;
}
}
};
}
goIntent.setClass(MainActivity.this, value3.class);
}else if(value == 4){
goIntent.setClass(MainActivity.this, value4.class);
}
startActivity(goIntent);
break;
}
}
};
}
MainActivity.java입니다
package com.MyFuture;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class value1 extends Activity {
Bitmap value;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
value = BitmapFactory.decodeResource(getResources(),
R.drawable.baristar,null);
}
public void onDraw(Canvas canvas){
canvas.drawBitmap(value,0,0,null);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setTextSize(20);
canvas.drawText("예제 1 ",100,50,paint);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0,1,0,"다시하기");
menu.add(0,2,0,"갤러리에 저장");
menu.add(0,3,0,"제작자");
menu.add(0,4,0,"종료");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case 1:
Intent valueIntent = new Intent();
valueIntent.setClass(this, MainActivity.class);
startActivity(valueIntent);
return true;
case 2:
Toast.makeText(this, "아직미완성ㅋ", Toast.LENGTH_SHORT).show();
return true;
case 3:
Toast.makeText(this, "천재가함" , Toast.LENGTH_SHORT).show();
return true;
case 4:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
Bitmap value;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
value = BitmapFactory.decodeResource(getResources(),
R.drawable.baristar,null);
}
public void onDraw(Canvas canvas){
canvas.drawBitmap(value,0,0,null);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setTextSize(20);
canvas.drawText("예제 1 ",100,50,paint);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0,1,0,"다시하기");
menu.add(0,2,0,"갤러리에 저장");
menu.add(0,3,0,"제작자");
menu.add(0,4,0,"종료");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case 1:
Intent valueIntent = new Intent();
valueIntent.setClass(this, MainActivity.class);
startActivity(valueIntent);
return true;
case 2:
Toast.makeText(this, "아직미완성ㅋ", Toast.LENGTH_SHORT).show();
return true;
case 3:
Toast.makeText(this, "천재가함" , Toast.LENGTH_SHORT).show();
return true;
case 4:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
value1.java입니다
value2 , value3,value4 모두 이미지만 다를뿐 다 같습니다
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.MyFuture"
android:versionCode="1"
android:versionName="1.0" >
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.MyFuture"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.value1"/>
<action android:name="android.intent.action.value2"/>
<action android:name="android.intent.action.value3"/>
<action android:name="android.intent.action.value4"/>
android:icon="@drawable/icon"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.value1"/>
<action android:name="android.intent.action.value2"/>
<action android:name="android.intent.action.value3"/>
<action android:name="android.intent.action.value4"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</intent-filter>
</activity>
</application>
</manifest>
진짜 귀찮은 질문 계속해서 정말 죄송합니다 ㅠㅠ




메뉴페스트 부분의 선언이 되어 있냐는 에러 메세지 인대