在 android 中使用 Intent 开始新 activity 时出错
Error in starting new activity using Intent in android
我已经为我的 android 应用程序创建了一个菜单。菜单有几个按钮,第一个按钮应该使用 Intent 启动名为 "BackgroundImages" 的新 Activity。但是,当我在模拟器上安装应用程序并单击按钮时,我收到以下错误 "Unfortunatlry, NewtonLow has stopped"。此外,"NewtonLow" 是应用程序的名称。下面演示了我为开始新 Activity.
所做的步骤
我创建了一个名为 class 的菜单,它显示 menu.xml 布局如下:
public class Menu extends Activity{
MediaPlayer mp1;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
mp1= MediaPlayer.create(this,R.raw.button );
Button but1 = (Button)findViewById(R.id.button1);
but1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mp1.start();
startActivity(new Intent("ghassar.mohamed.newtonlaw.BACKGROUNDIMAGES"));
}
});
}}
我已经编辑了 Manifast 以启动菜单 class,如下所示:
<activity
android:name=".Menu"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我还为 backgroundImage class 添加了 activity 以使用它,这样我就可以启动 activity :
<activity android:name=".BackgroundImages"android:label="@string/app_name" >
<intent-filter>
<action android:name="ghassar.mohamed.newtonlaw.BACKGROUNDIMAGES" />
<category android:name="android.intent.category.DEFUALT" />
</intent-filter>
Logcat 错误:
05-16 12:17:52.242: I/GenericSource(64): start
05-16 12:17:52.274: W/IntentResolver(347): resolveIntent failed: found match, but none with CATEGORY_DEFAULT
05-16 12:17:52.274: I/ActivityManager(347): START u0 {act=ghassar.mohamed.newtonlaw.BACKGROUNDIMAGES} from uid 10053 on display 0
05-16 12:17:52.276: D/AndroidRuntime(2247): Shutting down VM
05-16 12:17:52.315: E/AndroidRuntime(2247): FATAL EXCEPTION: main
05-16 12:17:52.315: E/AndroidRuntime(2247): Process: ghassar.mohamed.newtonlaw, PID: 2247
05-16 12:17:52.315: E/AndroidRuntime(2247): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=ghassar.mohamed.newtonlaw.BACKGROUNDIMAGES }
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1781)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.Activity.startActivityForResult(Activity.java:3745)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.Activity.startActivityForResult(Activity.java:3706)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.Activity.startActivity(Activity.java:4016)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.Activity.startActivity(Activity.java:3984)
05-16 12:17:52.315: E/AndroidRuntime(2247): at ghassar.mohamed.newtonlaw.Menu.onClick(Menu.java:28)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.view.View.performClick(View.java:4780)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.view.View$PerformClick.run(View.java:19866)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.os.Handler.handleCallback(Handler.java:739)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.os.Handler.dispatchMessage(Handler.java:95)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.os.Looper.loop(Looper.java:135)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.ActivityThread.main(ActivityThread.java:5257)
05-16 12:17:52.315: E/AndroidRuntime(2247): at java.lang.reflect.Method.invoke(Native Method)
05-16 12:17:52.315: E/AndroidRuntime(2247): at java.lang.reflect.Method.invoke(Method.java:372)
05-16 12:17:52.315: E/AndroidRuntime(2247): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
05-16 12:17:52.315: E/AndroidRuntime(2247): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
05-16 12:17:52.324: W/ActivityManager(347): Force finishing activity 1 ghassar.mohamed.newtonlaw/.Menu
05-16 12:17:52.347: D/AudioSink(64): bufferCount (8) is too small and increased to 12
05-16 12:17:52.495: E/EGL_emulation(53): tid 53: eglCreateSyncKHR(1237): error 0x3004 (EGL_BAD_ATTRIBUTE)
05-16 12:17:52.781: I/OpenGLRenderer(347): Initialized EGL, version 1.4
05-16 12:17:52.827: W/EGL_emulation(347): eglSurfaceAttrib not implemented
05-16 12:17:52.827: W/OpenGLRenderer(347): Failed to set EGL_SWAP_BEHAVIOR on surface 0x9f334060, error=EGL_SUCCESS
05-16 12:17:53.375: W/ActivityManager(347): Activity pause timeout for ActivityRecord{13745810 u0 ghassar.mohamed.newtonlaw/.Menu t30 f}
05-16 12:17:54.507: W/ResourceType(791): No package identifier when getting value for resource number 0x00000000
05-16 12:17:54.508: W/PackageManager(791): Failure retrieving resources for ghassar.mohamed.newtonlaw: Resource ID #0x0
05-16 12:17:54.590: I/OpenGLRenderer(618): Initialized EGL, version 1.4
05-16 12:17:54.736: W/EGL_emulation(618): eglSurfaceAttrib not implemented
05-16 12:17:54.736: W/OpenGLRenderer(618): Failed to set EGL_SWAP_BEHAVIOR on surface 0xa5029520, error=EGL_SUCCESS
05-16 12:17:55.144: I/art(618): Background partial concurrent mark sweep GC freed 2481(214KB) AllocSpace objects, 20(6MB) LOS objects, 24% free, 12MB/16MB, paused 1.176ms total 132.034ms
05-16 12:17:55.553: I/Choreographer(347): Skipped 50 frames! The application may be doing too much work on its main thread.
05-16 12:17:57.358: I/Choreographer(347): Skipped 51 frames! The application may be doing too much work on its main thread.
05-16 12:17:57.369: I/Choreographer(347): Skipped 50 frames! The application may be doing too much work on its main thread.
05-16 12:17:57.585: I/Process(2247): Sending signal. PID: 2247 SIG: 9
05-16 12:17:57.607: D/NuPlayerDriver(64): reset(0xb5915280)
05-16 12:17:57.619: W/InputDispatcher(347): channel '17ecf26e ghassar.mohamed.newtonlaw/ghassar.mohamed.newtonlaw.Menu (server)' ~ Consumer closed input channel or an error occurred. events=0x9
05-16 12:17:57.619: E/InputDispatcher(347): channel '17ecf26e ghassar.mohamed.newtonlaw/ghassar.mohamed.newtonlaw.Menu (server)' ~ Channel is unrecoverably broken and will be disposed!
05-16 12:17:57.632: I/ActivityManager(347): Process ghassar.mohamed.newtonlaw (pid 2247) has died
05-16 12:17:57.645: D/NuPlayerDriver(64): notifyResetComplete(0xb5915280)
05-16 12:17:57.673: W/AudioTrack(347): AUDIO_OUTPUT_FLAG_FAST denied by client
05-16 12:17:57.890: I/WindowState(347): WIN DEATH: Window{17ecf26e u0 ghassar.mohamed.newtonlaw/ghassar.mohamed.newtonlaw.Menu}
05-16 12:17:57.890: W/InputDispatcher(347): Attempted to unregister already unregistered input channel '17ecf26e ghassar.mohamed.newtonlaw/ghassar.mohamed.newtonlaw.Menu (server)'
05-16 12:17:58.151: W/InputMethodManagerService(347): Got RemoteException sending setActive(false) notification to pid 2247 uid 10053
05-16 12:17:58.200: W/OpenGLRenderer(618): Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer...
在您的清单中,我看到一个拼写错误(DEFUALT 而不是 DEFAULT)
<intent-filter>
<action android:name="ghassar.mohamed.newtonlaw.BACKGROUNDIMAGES" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
我已经为我的 android 应用程序创建了一个菜单。菜单有几个按钮,第一个按钮应该使用 Intent 启动名为 "BackgroundImages" 的新 Activity。但是,当我在模拟器上安装应用程序并单击按钮时,我收到以下错误 "Unfortunatlry, NewtonLow has stopped"。此外,"NewtonLow" 是应用程序的名称。下面演示了我为开始新 Activity.
所做的步骤我创建了一个名为 class 的菜单,它显示 menu.xml 布局如下:
public class Menu extends Activity{ MediaPlayer mp1; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.menu); mp1= MediaPlayer.create(this,R.raw.button ); Button but1 = (Button)findViewById(R.id.button1); but1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mp1.start(); startActivity(new Intent("ghassar.mohamed.newtonlaw.BACKGROUNDIMAGES")); } }); }}
我已经编辑了 Manifast 以启动菜单 class,如下所示:
<activity android:name=".Menu" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
我还为 backgroundImage class 添加了 activity 以使用它,这样我就可以启动 activity :
<activity android:name=".BackgroundImages"android:label="@string/app_name" > <intent-filter> <action android:name="ghassar.mohamed.newtonlaw.BACKGROUNDIMAGES" /> <category android:name="android.intent.category.DEFUALT" /> </intent-filter>
Logcat 错误:
05-16 12:17:52.242: I/GenericSource(64): start
05-16 12:17:52.274: W/IntentResolver(347): resolveIntent failed: found match, but none with CATEGORY_DEFAULT
05-16 12:17:52.274: I/ActivityManager(347): START u0 {act=ghassar.mohamed.newtonlaw.BACKGROUNDIMAGES} from uid 10053 on display 0
05-16 12:17:52.276: D/AndroidRuntime(2247): Shutting down VM
05-16 12:17:52.315: E/AndroidRuntime(2247): FATAL EXCEPTION: main
05-16 12:17:52.315: E/AndroidRuntime(2247): Process: ghassar.mohamed.newtonlaw, PID: 2247
05-16 12:17:52.315: E/AndroidRuntime(2247): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=ghassar.mohamed.newtonlaw.BACKGROUNDIMAGES }
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1781)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.Activity.startActivityForResult(Activity.java:3745)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.Activity.startActivityForResult(Activity.java:3706)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.Activity.startActivity(Activity.java:4016)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.Activity.startActivity(Activity.java:3984)
05-16 12:17:52.315: E/AndroidRuntime(2247): at ghassar.mohamed.newtonlaw.Menu.onClick(Menu.java:28)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.view.View.performClick(View.java:4780)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.view.View$PerformClick.run(View.java:19866)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.os.Handler.handleCallback(Handler.java:739)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.os.Handler.dispatchMessage(Handler.java:95)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.os.Looper.loop(Looper.java:135)
05-16 12:17:52.315: E/AndroidRuntime(2247): at android.app.ActivityThread.main(ActivityThread.java:5257)
05-16 12:17:52.315: E/AndroidRuntime(2247): at java.lang.reflect.Method.invoke(Native Method)
05-16 12:17:52.315: E/AndroidRuntime(2247): at java.lang.reflect.Method.invoke(Method.java:372)
05-16 12:17:52.315: E/AndroidRuntime(2247): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
05-16 12:17:52.315: E/AndroidRuntime(2247): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
05-16 12:17:52.324: W/ActivityManager(347): Force finishing activity 1 ghassar.mohamed.newtonlaw/.Menu
05-16 12:17:52.347: D/AudioSink(64): bufferCount (8) is too small and increased to 12
05-16 12:17:52.495: E/EGL_emulation(53): tid 53: eglCreateSyncKHR(1237): error 0x3004 (EGL_BAD_ATTRIBUTE)
05-16 12:17:52.781: I/OpenGLRenderer(347): Initialized EGL, version 1.4
05-16 12:17:52.827: W/EGL_emulation(347): eglSurfaceAttrib not implemented
05-16 12:17:52.827: W/OpenGLRenderer(347): Failed to set EGL_SWAP_BEHAVIOR on surface 0x9f334060, error=EGL_SUCCESS
05-16 12:17:53.375: W/ActivityManager(347): Activity pause timeout for ActivityRecord{13745810 u0 ghassar.mohamed.newtonlaw/.Menu t30 f}
05-16 12:17:54.507: W/ResourceType(791): No package identifier when getting value for resource number 0x00000000
05-16 12:17:54.508: W/PackageManager(791): Failure retrieving resources for ghassar.mohamed.newtonlaw: Resource ID #0x0
05-16 12:17:54.590: I/OpenGLRenderer(618): Initialized EGL, version 1.4
05-16 12:17:54.736: W/EGL_emulation(618): eglSurfaceAttrib not implemented
05-16 12:17:54.736: W/OpenGLRenderer(618): Failed to set EGL_SWAP_BEHAVIOR on surface 0xa5029520, error=EGL_SUCCESS
05-16 12:17:55.144: I/art(618): Background partial concurrent mark sweep GC freed 2481(214KB) AllocSpace objects, 20(6MB) LOS objects, 24% free, 12MB/16MB, paused 1.176ms total 132.034ms
05-16 12:17:55.553: I/Choreographer(347): Skipped 50 frames! The application may be doing too much work on its main thread.
05-16 12:17:57.358: I/Choreographer(347): Skipped 51 frames! The application may be doing too much work on its main thread.
05-16 12:17:57.369: I/Choreographer(347): Skipped 50 frames! The application may be doing too much work on its main thread.
05-16 12:17:57.585: I/Process(2247): Sending signal. PID: 2247 SIG: 9
05-16 12:17:57.607: D/NuPlayerDriver(64): reset(0xb5915280)
05-16 12:17:57.619: W/InputDispatcher(347): channel '17ecf26e ghassar.mohamed.newtonlaw/ghassar.mohamed.newtonlaw.Menu (server)' ~ Consumer closed input channel or an error occurred. events=0x9
05-16 12:17:57.619: E/InputDispatcher(347): channel '17ecf26e ghassar.mohamed.newtonlaw/ghassar.mohamed.newtonlaw.Menu (server)' ~ Channel is unrecoverably broken and will be disposed!
05-16 12:17:57.632: I/ActivityManager(347): Process ghassar.mohamed.newtonlaw (pid 2247) has died
05-16 12:17:57.645: D/NuPlayerDriver(64): notifyResetComplete(0xb5915280)
05-16 12:17:57.673: W/AudioTrack(347): AUDIO_OUTPUT_FLAG_FAST denied by client
05-16 12:17:57.890: I/WindowState(347): WIN DEATH: Window{17ecf26e u0 ghassar.mohamed.newtonlaw/ghassar.mohamed.newtonlaw.Menu}
05-16 12:17:57.890: W/InputDispatcher(347): Attempted to unregister already unregistered input channel '17ecf26e ghassar.mohamed.newtonlaw/ghassar.mohamed.newtonlaw.Menu (server)'
05-16 12:17:58.151: W/InputMethodManagerService(347): Got RemoteException sending setActive(false) notification to pid 2247 uid 10053
05-16 12:17:58.200: W/OpenGLRenderer(618): Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer...
在您的清单中,我看到一个拼写错误(DEFUALT 而不是 DEFAULT)
<intent-filter>
<action android:name="ghassar.mohamed.newtonlaw.BACKGROUNDIMAGES" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>