마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

intent사용하는 화면전환소스를 실행하면 어플 중지됩니다..

0 추천
package com.example.map;
 
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
 
public class MainMenu extends Activity {
Intent intent = null;
 
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.gc();
 
setContentView(R.layout.main_menu);
 
// 게임시작 버튼
findViewById(R.id.mark).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
intent = new Intent(getApplicationContext(),
MainActivity.class);
startActivity(intent);
}
});
 
// 표창사기 버튼
findViewById(R.id.book).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// todo:
}
});
 
}
 
private void clearApplicationCache(java.io.File dir) {
if (dir == null)
dir = getCacheDir();
else
;
if (dir == null)
return;
else
;
java.io.File[] children = dir.listFiles();
try {
for (int i = 0; i < children.length; i++)
if (children[i].isDirectory())
clearApplicationCache(children[i]);
else
children[i].delete();
} catch (Exception e) {
}
}
 
@Override
public void onDestroy() {
super.onDestroy();
clearApplicationCache(null);
}
}
 
 
이동하는 소스입니다. MainActivity.class로 이동하게끔 한거 같은데 이동은 커녕 어플 중지 되네요..
 
도와주세요...
익명사용자 님이 2014년 6월 13일 질문

3개의 답변

+1 추천
로그캣 보여주면 좀더 정확히 가르쳐드릴수 있을건데..일단 getApplicationContext 말고 MainMenu.this넣어보세요..
YeonMin (17,860 포인트) 님이 2014년 6월 14일 답변
YeonMin님의 말에 동감합니다.
06-14 17:34:13.981: W/ApplicationPackageManager(5455): getCSCPackageItemText()
06-14 17:34:14.011: D/dalvikvm(5455): GC_EXPLICIT freed 55K, 37% free 16859K/26648K, paused 2ms+2ms, total 26ms
06-14 17:34:14.101: D/dalvikvm(5455): GC_FOR_ALLOC freed 17K, 37% free 17026K/26648K, paused 8ms, total 8ms
06-14 17:34:14.111: I/dalvikvm-heap(5455): Grow heap (frag case) to 32.012MB for 10268752-byte allocation
06-14 17:34:14.241: I/Adreno-EGL(5455): <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build:  ()
06-14 17:34:14.241: I/Adreno-EGL(5455): OpenGL ES Shader Compiler Version: E031.24.00.07
06-14 17:34:14.241: I/Adreno-EGL(5455): Build Date: 01/22/14 Wed
06-14 17:34:14.241: I/Adreno-EGL(5455): Local Branch: base_au149_adreno_au169_patches
06-14 17:34:14.241: I/Adreno-EGL(5455): Remote Branch:
06-14 17:34:14.241: I/Adreno-EGL(5455): Local Patches:
06-14 17:34:14.241: I/Adreno-EGL(5455): Reconstruct Branch:
06-14 17:34:14.261: D/OpenGLRenderer(5455): Enabling debug mode 0
06-14 17:34:16.151: D/AndroidRuntime(5455): Shutting down VM
06-14 17:34:16.151: W/dalvikvm(5455): threadid=1: thread exiting with uncaught exception (group=0x417c9da0)
06-14 17:34:16.161: E/AndroidRuntime(5455): FATAL EXCEPTION: main
06-14 17:34:16.161: E/AndroidRuntime(5455): Process: com.ninja, PID: 5455
06-14 17:34:16.161: E/AndroidRuntime(5455): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.ninja/com.ninja.stage1}; have you declared this activity in your AndroidManifest.xml?
06-14 17:34:16.161: E/AndroidRuntime(5455):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1648)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1442)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at android.app.Activity.startActivityForResult(Activity.java:3511)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at android.app.Activity.startActivityForResult(Activity.java:3472)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at android.app.Activity.startActivity(Activity.java:3714)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at android.app.Activity.startActivity(Activity.java:3682)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at com.ninja.MainMenu$1.onClick(MainMenu.java:26)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at android.view.View.performClick(View.java:4633)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at android.view.View$PerformClick.run(View.java:19330)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at android.os.Handler.handleCallback(Handler.java:733)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at android.os.Handler.dispatchMessage(Handler.java:95)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at android.os.Looper.loop(Looper.java:157)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at android.app.ActivityThread.main(ActivityThread.java:5356)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at java.lang.reflect.Method.invokeNative(Native Method)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at java.lang.reflect.Method.invoke(Method.java:515)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
06-14 17:34:16.161: E/AndroidRuntime(5455):     at dalvik.system.NativeStart.main(Native Method)
06-14 17:34:17.531: I/Process(5455): Sending signal. PID: 5455 SIG: 9


로그캣은 이렇게 뜹니다...

getApplicationContext 말고 MainMenu.this를 넣어봤는데 역시 중지되네요 ...
패키지 네임 확인해보세요..com.example.map이 아닌거 같은데요..com.ninja어쩌고 같은데..
앗 제가 처음 올린 코드 잘못올린거였네요;;

package com.ninja;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class MainMenu extends Activity {
    Intent intent = null;

    @SuppressLint("NewApi")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        System.gc();

        setContentView(R.layout.main_menu);

        // 게임시작 버튼
        findViewById(R.id.mark).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                intent = new Intent(MainMenu.this,
                        stage1.class);
                startActivity(intent);
            }
        });

        // 표창사기 버튼
        findViewById(R.id.book).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // todo:
            }
        });

    }

    private void clearApplicationCache(java.io.File dir) {
        if (dir == null)
            dir = getCacheDir();
        else
            ;
        if (dir == null)
            return;
        else
            ;
        java.io.File[] children = dir.listFiles();
        try {
            for (int i = 0; i < children.length; i++)
                if (children[i].isDirectory())
                    clearApplicationCache(children[i]);
                else
                    children[i].delete();
        } catch (Exception e) {
        }
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        clearApplicationCache(null);
    }
}

이거 였습니다..

그리고 로그캣은

06-15 00:00:41.834: W/ApplicationPackageManager(15718): getCSCPackageItemText()
06-15 00:00:41.894: D/dalvikvm(15718): GC_EXPLICIT freed 51K, 37% free 16859K/26648K, paused 1ms+2ms, total 24ms
06-15 00:00:42.004: D/dalvikvm(15718): GC_FOR_ALLOC freed 17K, 37% free 17026K/26648K, paused 9ms, total 9ms
06-15 00:00:42.014: I/dalvikvm-heap(15718): Grow heap (frag case) to 30.012MB for 10268752-byte allocation
06-15 00:00:42.234: I/Adreno-EGL(15718): <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build:  ()
06-15 00:00:42.234: I/Adreno-EGL(15718): OpenGL ES Shader Compiler Version: E031.24.00.07
06-15 00:00:42.234: I/Adreno-EGL(15718): Build Date: 01/22/14 Wed
06-15 00:00:42.234: I/Adreno-EGL(15718): Local Branch: base_au149_adreno_au169_patches
06-15 00:00:42.234: I/Adreno-EGL(15718): Remote Branch:
06-15 00:00:42.234: I/Adreno-EGL(15718): Local Patches:
06-15 00:00:42.234: I/Adreno-EGL(15718): Reconstruct Branch:
06-15 00:00:42.334: D/OpenGLRenderer(15718): Enabling debug mode 0
06-15 00:00:44.204: D/AndroidRuntime(15718): Shutting down VM
06-15 00:00:44.204: W/dalvikvm(15718): threadid=1: thread exiting with uncaught exception (group=0x417c9da0)
06-15 00:00:44.244: E/AndroidRuntime(15718): FATAL EXCEPTION: main
06-15 00:00:44.244: E/AndroidRuntime(15718): Process: com.ninja, PID: 15718
06-15 00:00:44.244: E/AndroidRuntime(15718): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.ninja/com.ninja.stage1}; have you declared this activity in your AndroidManifest.xml?
06-15 00:00:44.244: E/AndroidRuntime(15718):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1648)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1442)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at android.app.Activity.startActivityForResult(Activity.java:3511)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at android.app.Activity.startActivityForResult(Activity.java:3472)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at android.app.Activity.startActivity(Activity.java:3714)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at android.app.Activity.startActivity(Activity.java:3682)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at com.ninja.MainMenu$1.onClick(MainMenu.java:26)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at android.view.View.performClick(View.java:4633)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at android.view.View$PerformClick.run(View.java:19330)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at android.os.Handler.handleCallback(Handler.java:733)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at android.os.Handler.dispatchMessage(Handler.java:95)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at android.os.Looper.loop(Looper.java:157)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at android.app.ActivityThread.main(ActivityThread.java:5356)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at java.lang.reflect.Method.invokeNative(Native Method)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at java.lang.reflect.Method.invoke(Method.java:515)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
06-15 00:00:44.244: E/AndroidRuntime(15718):     at dalvik.system.NativeStart.main(Native Method)
06-15 00:00:45.814: I/Process(15718): Sending signal. PID: 15718 SIG: 9


입니다 ...
+1 추천

06-15 00:00:44.244: E/AndroidRuntime(15718): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.ninja/com.ninja.stage1}; have you declared this activity in your AndroidManifest.xml?

 

라네요

 

stage1 액티비티를 메니페스트에 선언해주셔야 할 것 같습니다.

안티푸라면 (6,700 포인트) 님이 2014년 6월 15일 답변
0 추천
findViewById(R.id.mark).setOnClickListener(new View.OnClickListener() {
오.. 요거 첨보는 작성법이네요 0_0 이렇게 해도 되는건가요?
 
아무튼 클릭리스너의 문제가 없다면 아마도~
 
매니페스트에 MainMenu 액티비티를 등록하지않은 것 같은데 한번 확인해보세요 '-'
초보개발자ㅠ (33,870 포인트) 님이 2014년 6월 14일 답변
매니페스트에 MainMenu 등록은 되있습니다...

책을 보고 타이핑하는거라 코드가 제대로 되었는지는 모르겠네요 ...
...