无法执行Android活动的方法

前端之家收集整理的这篇文章主要介绍了无法执行Android活动的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下按钮:
  1. <Button
  2. android:layout_width="wrap_content"
  3. android:layout_height="wrap_content"
  4. android:text="@string/btn_create_user"
  5. android:id="@+id/btn_create_user"
  6. android:onClick="onClickCreateUser"
  7.  
  8. android:layout_alignParentBottom="true"
  9. android:background="@color/btn_create_user"
  10. android:layout_alignLeft="@+id/btn_login"
  11. android:layout_alignStart="@+id/btn_login"
  12. android:layout_marginBottom="23dp"
  13. android:layout_alignRight="@+id/btn_login"
  14. android:layout_alignEnd="@+id/btn_login" />

具有以下onclick功能

  1. public void onClickCreateUser(View v){
  2. Intent i = new Intent("dk.anapp.noteBox.activity_createUser");
  3. startActivity(i);
  4. }

当我按下按钮时,我收到以下错误

  1. 02-12 18:20:53.526 1598-1598/dk.anapp.noteBox E/AndroidRuntime FATAL EXCEPTION: main
  2. java.lang.IllegalStateException: Could not execute method of the activity
  3. at android.view.View$1.onClick(View.java:3044)
  4. at android.view.View.performClick(View.java:3511)
  5. at android.view.View$PerformClick.run(View.java:14105)
  6. at android.os.Handler.handleCallback(Handler.java:605)
  7. at android.os.Handler.dispatchMessage(Handler.java:92)
  8. at android.os.Looper.loop(Looper.java:137)
  9. at android.app.ActivityThread.main(ActivityThread.java:4424)
  10. at java.lang.reflect.Method.invokeNative(Native Method)
  11. at java.lang.reflect.Method.invoke(Method.java:511)
  12. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
  13. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
  14. at dalvik.system.NativeStart.main(Native Method)
  15. Caused by: java.lang.reflect.InvocationTargetException
  16. at java.lang.reflect.Method.invokeNative(Native Method)
  17. at java.lang.reflect.Method.invoke(Method.java:511)
  18. at android.view.View$1.onClick(View.java:3039)
  19. at android.view.View.performClick(View.java:3511)
  20. at android.view.View$PerformClick.run(View.java:14105)
  21. at android.os.Handler.handleCallback(Handler.java:605)
  22. at android.os.Handler.dispatchMessage(Handler.java:92)
  23. at android.os.Looper.loop(Looper.java:137)
  24. at android.app.ActivityThread.main(ActivityThread.java:4424)
  25. at java.lang.reflect.Method.invokeNative(Native Method)
  26. at java.lang.reflect.Method.invoke(Method.java:511)
  27. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
  28. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
  29. at dalvik.system.NativeStart.main(Native Method)
  30. Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=dk.anapp.noteBox.activity_createUser }
  31. at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1512)
  32. at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384)
  33. at android.app.Activity.startActivityForResult(Activity.java:3190)
  34. at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:839)
  35. at android.app.Activity.startActivity(Activity.java:3297)
  36. at dk.anapp.noteBox.Login.onClickCreateUser(Login.java:74)
  37. at java.lang.reflect.Method.invokeNative(Native Method)
  38. at java.lang.reflect.Method.invoke(Method.java:511)
  39. at android.view.View$1.onClick(View.java:3039)
  40. at android.view.View.performClick(View.java:3511)
  41. at android.view.View$PerformClick.run(View.java:14105)
  42. at android.os.Handler.handleCallback(Handler.java:605)
  43. at android.os.Handler.dispatchMessage(Handler.java:92)
  44. at android.os.Looper.loop(Looper.java:137)
  45. at android.app.ActivityThread.main(ActivityThread.java:4424)
  46. at java.lang.reflect.Method.invokeNative(Native Method)
  47. at java.lang.reflect.Method.invoke(Method.java:511)
  48. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
  49. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
  50. at dalvik.system.NativeStart.main(Native Method)

搜索了SO,但我能找到的唯一答案是那些忘记在清单中宣布课程的人

这是我的清单:

  1. <?xml version="1.0" encoding="utf-8"?>
  1. <uses-sdk
  2. android:minSdkVersion="9"
  3. android:targetSdkVersion="18" />
  4.  
  5. <uses-permission android:name="android.permission.INTERNET" />
  6.  
  7. <application
  8. android:name="dk.anapp.noteBox.Mediator"
  9. android:allowBackup="true"
  10. android:icon="@drawable/ic_launcher"
  11. android:label="@string/app_name"
  12. android:theme="@style/AppTheme" >
  13. <activity
  14. android:name="dk.anapp.noteBox.Login"
  15. android:label="@string/title_activity_login" >
  16. <intent-filter>
  17. <action android:name="android.intent.action.MAIN" />
  18.  
  19. <category android:name="android.intent.category.LAUNCHER" />
  20. </intent-filter>
  21. </activity>
  22. <activity
  23. android:name="dk.anapp.noteBox.SoloActivity"
  24. android:label="@string/title_activity_solo" >
  25. <intent-filter>
  26. <action android:name="dk.anapp.noteBox.SoloActivity" />
  27.  
  28. <category android:name="android.intent.category.DEFAULT" />
  29. </intent-filter>
  30. </activity>
  31. <activity
  32. android:name="dk.anapp.noteBox.SpashScreen"
  33. android:configChanges="orientation|keyboardHidden|screenSize"
  34. android:label="@string/title_activity_spash_screen"
  35. android:theme="@style/FullscreenTheme" >
  36. <intent-filter>
  37. <action android:name="android.intent.action.MAIN" />
  38.  
  39. <category android:name="android.intent.category.LAUNCHER" />
  40. </intent-filter>
  41. </activity>
  42. <activity
  43. android:name="dk.anapp.noteBox.SpashScreen"
  44. android:label="@string/title_activity_spash_screen" >
  45. <intent-filter>
  46. <action android:name="android.intent.action.MAIN" />
  47.  
  48. <category android:name="android.intent.category.LAUNCHER" />
  49. </intent-filter>
  50. </activity>
  51. <activity
  52. android:name="dk.anapp.noteBox.MyGroups"
  53. android:label="@string/title_activity_my_groups" >
  54. <intent-filter>
  55. <action android:name="android.intent.action.MAIN" />
  56. <category android:name="android.intent.category.LAUNCHER" />
  57. </intent-filter>
  58. </activity>
  59. <activity
  60. android:name="dk.anapp.noteBox.activity_createUser"
  61. android:label="@string/title_activity_activity_create_user" >
  62. <intent-filter>
  63. <action android:name="android.intent.action.MAIN" />
  64. <category android:name="android.intent.category.LAUNCHER" />
  65. </intent-filter>
  66. </activity>
  67. </application>

那我做错了什么?

解决方法

在你的清单中就行了
  1. <activity android:name="dk.anapp.noteBox.activity_createUser" />

你应该使用这个< intent-filter>属性只有一次,以指定在启动时运行的Activity

  1. <intent-filter>
  2. <action android:name="android.intent.action.MAIN" />
  3. <category android:name="android.intent.category.LAUNCHER" />
  4. </intent-filter>

此外,将您的代码更改为

  1. public void onClickCreateUser(View v){
  2. Intent i = new Intent(this,Activity_createUser.class);
  3. startActivity(i);
  4. }

我假设您的活动类名为Activity_createUser.java,如果不是这种情况,您应该更改上面的新Intent(this,Activity_createUser.class);与您的活动类名称匹配

猜你在找的Android相关文章