2014-12-03 2 views
0

나는 theewboston android tutorials를 팔로우하고 있습니다. 내 응용 프로그램이 에뮬레이터에서 실행 중이며 스플래시 화면이 나타난 다음 메뉴가 나타납니다. 그러나 활동의 아무도는 누르기에 작동하지 않는다.클릭시 작동하지 않음

Menu.java

package com.thenewboston.travis; 

import android.app.ListActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class Menu extends ListActivity { 
    String classes[] = { "StartingPoint", "TextPlay", "Email", "Camera", 
      "example4", "example5", "example6" }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setListAdapter(new ArrayAdapter<String>(Menu.this, 
       android.R.layout.simple_list_item_1, classes)); 
    } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     // TODO Auto-generated method stub 

     super.onListItemClick(l, v, position, id); 
     String cheese = classes[position]; 
     try { 
      Class ourClass = Class 
        .forName("com.thenewboston.travis. " + cheese); 
      Intent ourIntent = new Intent(Menu.this, ourClass); 
      startActivity(ourIntent); 
     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Splash.java

package com.thenewboston.travis; 

import android.app.Activity; 
import android.content.Intent; 
import android.media.MediaPlayer; 
import android.os.Bundle; 

public class Splash extends Activity { 
    MediaPlayer ourSong; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash); 
     ourSong = MediaPlayer 
       .create(Splash.this, R.raw.underwater_splash_small); 
     ourSong.start(); 

     Thread timer = new Thread() { 
      public void run() { 
       try { 
        sleep(5000); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } finally { 
        Intent openStartingPoint = new Intent(
          "com.thenewboston.travis.MENU"); 
        startActivity(openStartingPoint); 
       } 
      } 

     }; 
     timer.start(); 
    } 

    @Override 
    protected void onPause() { 
     // TODO Auto-generated method stub 
     super.onPause(); 
     ourSong.release(); 
     finish(); 
    } 
} 

의 AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.thenewboston.travis" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="21" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

     <activity 
      android:name=".Splash" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".StartingPoint" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="com.thenewboston.travis.STARTINGPOINT" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".Menu" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="com.thenewboston.travis.MENU" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".TextPlay" 
      android:label="@string/app_name" > 

     </activity> 

     <activity 
      android:name=".Email" 
      android:label="@string/app_name" > 

     </activity> 

    </application> 

</manifest> 

TextPlay.java

package com.thenewboston.travis; 

import java.util.Random; 

import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.text.InputType; 
import android.view.Gravity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.ToggleButton; 

public class TextPlay extends Activity implements View.OnClickListener { 
    Button chkCmd; 
    ToggleButton passTog; 
    EditText input; 
    TextView display; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.text); 

     baconAndEggs(); 

     passTog.setOnClickListener(this); 
     chkCmd.setOnClickListener(this); 
    } 

    private void baconAndEggs() { 
     // TODO Auto-generated method stub 
     chkCmd = (Button) findViewById(R.id.bResults); 
     passTog = (ToggleButton) findViewById(R.id.tbPassword); 
     input = (EditText) findViewById(R.id.etCommands); 
     display = (TextView) findViewById(R.id.tvResults); 
    } 

    @Override 
    public void onClick(View view) { 
     // TODO Auto-generated method stub 
     switch (view.getId()) { 
     case R.id.bResults: 
      String check = input.getText().toString(); 
      display.setText(check); 
      if (check.contentEquals("left")) { 
       display.setGravity(Gravity.LEFT); 
      } else if (check.contentEquals("center")) { 
       display.setGravity(Gravity.CENTER); 
      } else if (check.contentEquals("right")) { 
       display.setGravity(Gravity.RIGHT); 
      } else if (check.contentEquals("blue")) { 
       display.setTextColor(Color.BLUE); 
      } else if (check.contains("WTF")) { 
       Random crazy = new Random(); 
       display.setText("WTF!!!"); 
       display.setTextSize(crazy.nextInt(75)); 
       display.setTextColor(Color.rgb(crazy.nextInt(265), 
         crazy.nextInt(265), crazy.nextInt(265))); 
       switch (crazy.nextInt(3)) { 
       case 0: 
        display.setGravity(Gravity.LEFT); 
        break; 

       case 1: 
        display.setGravity(Gravity.CENTER); 
        break; 

       case 2: 
        display.setGravity(Gravity.RIGHT); 
        break; 
       } 
      } else { 
       display.setText("invalid"); 
       display.setGravity(Gravity.CENTER); 
       display.setTextColor(Color.WHITE); 
      } 
      break; 

     case R.id.tbPassword: 
      if (passTog.isChecked()) { 
       input.setInputType(InputType.TYPE_CLASS_TEXT 
         | InputType.TYPE_TEXT_VARIATION_PASSWORD); 
      } else { 
       input.setInputType(InputType.TYPE_CLASS_TEXT); 
      } 
      break; 

     } 
    } 
} 

로그 캣

12-03 17:46:24.512: DEBUG/AndroidRuntime(392): CheckJNI is ON 
12-03 17:46:24.813: DEBUG/AndroidRuntime(392): --- registering native functions --- 
12-03 17:46:25.932: DEBUG/dalvikvm(217): GC_EXPLICIT freed 130 objects/7016 bytes in 90ms 
12-03 17:46:26.243: DEBUG/PackageParser(59): Scanning package: /data/app/vmdl70360.tmp 
12-03 17:46:26.662: DEBUG/dalvikvm(59): GC_FOR_MALLOC freed 16255 objects/1127560 bytes in 113ms 
12-03 17:46:27.793: DEBUG/dalvikvm(59): GC_FOR_MALLOC freed 14115 objects/692520 bytes in 114ms 
12-03 17:46:28.092: INFO/PackageManager(59): Removing non-system package:com.thenewboston.travis 
12-03 17:46:28.092: INFO/ActivityManager(59): Force stopping package com.thenewboston.travis uid=10041 
12-03 17:46:28.102: INFO/Process(59): Sending signal. PID: 380 SIG: 9 
12-03 17:46:28.132: INFO/UsageStats(59): Unexpected resume of com.android.launcher while already resumed in com.thenewboston.travis 
12-03 17:46:28.132: INFO/WindowManager(59): WIN DEATH: Window{4a25b718 com.thenewboston.travis/com.thenewboston.travis.Menu paused=false} 
12-03 17:46:28.163: WARN/InputManagerService(59): Got RemoteException sending setActive(false) notification to pid 380 uid 10041 
12-03 17:46:28.312: DEBUG/PackageManager(59): Scanning package com.thenewboston.travis 
12-03 17:46:28.322: INFO/PackageManager(59): Package com.thenewboston.travis codePath changed from /data/app/com.thenewboston.travis-1.apk to /data/app/com.thenewboston.travis-2.apk; Retaining data and using new 
12-03 17:46:28.322: INFO/PackageManager(59): /data/app/com.thenewboston.travis-2.apk changed; unpacking 
12-03 17:46:28.372: DEBUG/installd(35): DexInv: --- BEGIN '/data/app/com.thenewboston.travis-2.apk' --- 
12-03 17:46:29.422: DEBUG/dalvikvm(399): DexOpt: couldn't find field Landroid/app/Notification;.category 
12-03 17:46:29.422: DEBUG/dalvikvm(399): DexOpt: couldn't find field Landroid/app/Notification;.fullScreenIntent 
12-03 17:46:29.422: DEBUG/dalvikvm(399): DexOpt: couldn't find field Landroid/app/Notification;.actions 
12-03 17:46:29.523: DEBUG/dalvikvm(399): DexOpt: couldn't find static field 
12-03 17:46:29.523: DEBUG/dalvikvm(399): DexOpt: couldn't find field Landroid/graphics/BitmapFactory$Options;.inMutable 
12-03 17:46:30.423: DEBUG/dalvikvm(399): DexOpt: load 329ms, verify 1027ms, opt 55ms 
12-03 17:46:30.492: DEBUG/installd(35): DexInv: --- END '/data/app/com.thenewboston.travis-2.apk' (success) --- 
12-03 17:46:30.492: WARN/PackageManager(59): Code path for pkg : com.thenewboston.travis changing from /data/app/com.thenewboston.travis-1.apk to /data/app/com.thenewboston.travis-2.apk 
12-03 17:46:30.502: WARN/PackageManager(59): Resource path for pkg : com.thenewboston.travis changing from /data/app/com.thenewboston.travis-1.apk to /data/app/com.thenewboston.travis-2.apk 
12-03 17:46:30.502: DEBUG/PackageManager(59): Activities: com.thenewboston.travis.Splash com.thenewboston.travis.StartingPoint com.thenewboston.travis.Menu com.thenewboston.travis.TextPlay com.thenewboston.travis.Email 
12-03 17:46:30.512: INFO/ActivityManager(59): Force stopping package com.thenewboston.travis uid=10041 
12-03 17:46:30.603: INFO/installd(35): move /data/dalvik-cache/[email protected]@[email protected] -> /data/dalvik-cache/[email protected]@[email protected] 
12-03 17:46:30.603: DEBUG/PackageManager(59): New package installed in /data/app/com.thenewboston.travis-2.apk 
12-03 17:46:30.713: INFO/ActivityManager(59): Force stopping package com.thenewboston.travis uid=10041 
12-03 17:46:30.763: DEBUG/dalvikvm(116): GC_EXPLICIT freed 80 objects/3536 bytes in 42ms 
12-03 17:46:30.913: DEBUG/dalvikvm(158): GC_EXPLICIT freed 1971 objects/100088 bytes in 137ms 
12-03 17:46:31.042: DEBUG/dalvikvm(59): GC_EXPLICIT freed 7653 objects/464840 bytes in 145ms 
12-03 17:46:31.042: INFO/installd(35): unlink /data/dalvik-cache/[email protected]@[email protected] 
12-03 17:46:31.062: WARN/RecognitionManagerService(59): no available voice recognition services found 
12-03 17:46:31.062: DEBUG/AndroidRuntime(392): Shutting down VM 
12-03 17:46:31.072: DEBUG/dalvikvm(392): Debugger has detached; object registry had 1 entries 
12-03 17:46:31.452: DEBUG/AndroidRuntime(405): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<< 
12-03 17:46:31.452: DEBUG/AndroidRuntime(405): CheckJNI is ON 
12-03 17:46:31.563: DEBUG/AndroidRuntime(405): --- registering native functions --- 
12-03 17:46:32.053: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.thenewboston.travis/.Splash } 
12-03 17:46:32.113: INFO/ActivityManager(59): Start proc com.thenewboston.travis for activity com.thenewboston.travis/.Splash: pid=411 uid=10041 gids={} 
12-03 17:46:32.113: DEBUG/AndroidRuntime(405): Shutting down VM 
12-03 17:46:32.123: DEBUG/dalvikvm(405): Debugger has detached; object registry had 1 entries 
12-03 17:46:32.153: INFO/dalvikvm(405): JNI: AttachCurrentThread (from ???.???) 
12-03 17:46:32.153: INFO/AndroidRuntime(405): NOTE: attach of thread 'Binder Thread #3' failed 
12-03 17:46:32.213: DEBUG/dalvikvm(33): GC_EXPLICIT freed 262 objects/10056 bytes in 112ms 
12-03 17:46:32.323: DEBUG/dalvikvm(33): GC_EXPLICIT freed 22 objects/968 bytes in 77ms 
12-03 17:46:32.542: DEBUG/dalvikvm(33): GC_EXPLICIT freed 2 objects/64 bytes in 193ms 
12-03 17:46:32.772: DEBUG/dalvikvm(411): GC_EXTERNAL_ALLOC freed 1051 objects/72808 bytes in 50ms 
12-03 17:46:32.843: DEBUG/AudioSink(34): bufferCount (4) is too small and increased to 12 
12-03 17:46:32.953: INFO/ActivityManager(59): Displayed activity com.thenewboston.travis/.Splash: 857 ms (total 857 ms) 
12-03 17:46:34.285: ERROR/MP3Extractor(34): Unable to resync. Signalling end of stream. 
12-03 17:46:37.873: INFO/ActivityManager(59): Starting activity: Intent { act=com.thenewboston.travis.MENU cmp=com.thenewboston.travis/.Menu } 
12-03 17:46:38.353: INFO/ActivityManager(59): Displayed activity com.thenewboston.travis/.Menu: 438 ms (total 438 ms) 
12-03 17:46:41.403: WARN/System.err(411): java.lang.ClassNotFoundException: com.thenewboston.travis. StartingPoint 
12-03 17:46:41.413: WARN/System.err(411):  at java.lang.Class.classForName(Native Method) 
12-03 17:46:41.423: WARN/System.err(411):  at java.lang.Class.forName(Class.java:235) 
12-03 17:46:41.423: WARN/System.err(411):  at java.lang.Class.forName(Class.java:182) 
12-03 17:46:41.433: WARN/System.err(411):  at com.thenewboston.travis.Menu.onListItemClick(Menu.java:30) 
12-03 17:46:41.433: WARN/System.err(411):  at android.app.ListActivity$2.onItemClick(ListActivity.java:321) 
12-03 17:46:41.453: WARN/System.err(411):  at android.widget.AdapterView.performItemClick(AdapterView.java:284) 
12-03 17:46:41.453: WARN/System.err(411):  at android.widget.ListView.performItemClick(ListView.java:3382) 
12-03 17:46:41.453: WARN/System.err(411):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696) 
12-03 17:46:41.463: WARN/System.err(411):  at android.os.Handler.handleCallback(Handler.java:587) 
12-03 17:46:41.463: WARN/System.err(411):  at android.os.Handler.dispatchMessage(Handler.java:92) 
12-03 17:46:41.463: WARN/System.err(411):  at android.os.Looper.loop(Looper.java:123) 
12-03 17:46:41.463: WARN/System.err(411):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
12-03 17:46:41.463: WARN/System.err(411):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-03 17:46:41.473: WARN/System.err(411):  at java.lang.reflect.Method.invoke(Method.java:521) 
12-03 17:46:41.483: WARN/System.err(411):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
12-03 17:46:41.483: WARN/System.err(411):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
12-03 17:46:41.483: WARN/System.err(411):  at dalvik.system.NativeStart.main(Native Method) 
12-03 17:46:41.483: WARN/System.err(411): Caused by: java.lang.NoClassDefFoundError: com.thenewboston.travis. StartingPoint 
12-03 17:46:41.493: WARN/System.err(411):  ... 17 more 
12-03 17:46:41.503: WARN/System.err(411): Caused by: java.lang.ClassNotFoundException: com.thenewboston.travis. StartingPoint in loader dalvik.system.PathClassLoader[/data/app/com.thenewboston.travis-2.apk] 
12-03 17:46:41.503: WARN/System.err(411):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
12-03 17:46:41.523: WARN/System.err(411):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
12-03 17:46:41.523: WARN/System.err(411):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
12-03 17:46:41.523: WARN/System.err(411):  ... 17 more 
12-03 17:46:42.342: WARN/System.err(411): java.lang.ClassNotFoundException: com.thenewboston.travis. StartingPoint 
12-03 17:46:42.342: WARN/System.err(411):  at java.lang.Class.classForName(Native Method) 
12-03 17:46:42.362: WARN/System.err(411):  at java.lang.Class.forName(Class.java:235) 
12-03 17:46:42.362: WARN/System.err(411):  at java.lang.Class.forName(Class.java:182) 
12-03 17:46:42.362: WARN/System.err(411):  at com.thenewboston.travis.Menu.onListItemClick(Menu.java:30) 
12-03 17:46:42.382: WARN/System.err(411):  at android.app.ListActivity$2.onItemClick(ListActivity.java:321) 
12-03 17:46:42.382: WARN/System.err(411):  at android.widget.AdapterView.performItemClick(AdapterView.java:284) 
12-03 17:46:42.382: WARN/System.err(411):  at android.widget.ListView.performItemClick(ListView.java:3382) 
12-03 17:46:42.392: WARN/System.err(411):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696) 
12-03 17:46:42.392: WARN/System.err(411):  at android.os.Handler.handleCallback(Handler.java:587) 
12-03 17:46:42.392: WARN/System.err(411):  at android.os.Handler.dispatchMessage(Handler.java:92) 
12-03 17:46:42.392: WARN/System.err(411):  at android.os.Looper.loop(Looper.java:123) 
12-03 17:46:42.392: WARN/System.err(411):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
12-03 17:46:42.412: WARN/System.err(411):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-03 17:46:42.412: WARN/System.err(411):  at java.lang.reflect.Method.invoke(Method.java:521) 
12-03 17:46:42.412: WARN/System.err(411):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
12-03 17:46:42.412: WARN/System.err(411):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
12-03 17:46:42.422: WARN/System.err(411):  at dalvik.system.NativeStart.main(Native Method) 
12-03 17:46:42.422: WARN/System.err(411): Caused by: java.lang.NoClassDefFoundError: com.thenewboston.travis. StartingPoint 
12-03 17:46:42.432: WARN/System.err(411):  ... 17 more 
12-03 17:46:42.442: WARN/System.err(411): Caused by: java.lang.ClassNotFoundException: com.thenewboston.travis. StartingPoint in loader dalvik.system.PathClassLoader[/data/app/com.thenewboston.travis-2.apk] 
12-03 17:46:42.442: WARN/System.err(411):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
12-03 17:46:42.452: WARN/System.err(411):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
12-03 17:46:42.462: WARN/System.err(411):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
12-03 17:46:42.462: WARN/System.err(411):  ... 17 more 
12-03 17:46:42.792: WARN/System.err(411): java.lang.ClassNotFoundException: com.thenewboston.travis. StartingPoint 
12-03 17:46:42.792: WARN/System.err(411):  at java.lang.Class.classForName(Native Method) 
12-03 17:46:42.822: WARN/System.err(411):  at java.lang.Class.forName(Class.java:235) 
12-03 17:46:42.832: WARN/System.err(411):  at java.lang.Class.forName(Class.java:182) 
12-03 17:46:42.843: WARN/System.err(411):  at com.thenewboston.travis.Menu.onListItemClick(Menu.java:30) 
12-03 17:46:42.843: WARN/System.err(411):  at android.app.ListActivity$2.onItemClick(ListActivity.java:321) 
12-03 17:46:42.853: WARN/System.err(411):  at android.widget.AdapterView.performItemClick(AdapterView.java:284) 
12-03 17:46:42.853: WARN/System.err(411):  at android.widget.ListView.performItemClick(ListView.java:3382) 
12-03 17:46:42.862: WARN/System.err(411):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696) 
12-03 17:46:42.872: WARN/System.err(411):  at android.os.Handler.handleCallback(Handler.java:587) 
12-03 17:46:42.872: WARN/System.err(411):  at android.os.Handler.dispatchMessage(Handler.java:92) 
12-03 17:46:42.872: WARN/System.err(411):  at android.os.Looper.loop(Looper.java:123) 
12-03 17:46:42.872: WARN/System.err(411):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
12-03 17:46:42.883: WARN/System.err(411):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-03 17:46:42.883: WARN/System.err(411):  at java.lang.reflect.Method.invoke(Method.java:521) 
12-03 17:46:42.883: WARN/System.err(411):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
12-03 17:46:42.883: WARN/System.err(411):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
12-03 17:46:42.883: WARN/System.err(411):  at dalvik.system.NativeStart.main(Native Method) 
12-03 17:46:42.903: WARN/System.err(411): Caused by: java.lang.NoClassDefFoundError: com.thenewboston.travis. StartingPoint 
+0

오류를 생성하는 가능한 최소 형식을 얻기 위해이 예제를 줄일 수 있습니까? 그래서 최소한의 예제에서만 디버깅 도움을 준다. – Trilarion

+2

패키지 이름의 점 다음에 공백을 제거한 후 (travis 이후) : Class ourClass = Class .forName ("com.thenewboston.travis."+ 치즈); ' –

+1

그랬습니다! 방금 일했습니다! : D 조 감사 많이! –

답변

1

오류는 다음과 같습니다

java.lang.ClassNotFoundException: com.thenewboston.travis. StartingPoint 

클래스는 당신이 클래스다면 그래서 여분의 공간을 제거

com.thenewboston.travis.StartingPoint 

입니다 :

Class ourClass = Class .forName("com.thenewboston.travis. " + cheese); 

변경이 ~ :

Class ourClass = Class.forName("com.thenewboston.travis." + cheese); 

희망이 있습니다.

+1

그것은 효과가 있었다! 덕분에 많이 : D –

+1

그런 절름발이 오류는 .. –

관련 문제