java.lang.ClassCastException:android.app.Application无法强制转换为greendroid.app.GDApplication

我正在获得一个类强制转换exception

java.lang.ClassCastException: android.app.Application cannot be cast to greendroid.app.GDApplication

当我在我的项目中尝试使用绿色机器人库时。这是相关的代码。 我一直试图弄清楚出了什么问题,但仍然没有运气。 任何forms的帮助将不胜感激。 谢谢。

 public class MainMenu extends GDActivity{ private QuickActionWidget mBar; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setActionBarContentView(R.layout.mainmenu); mBar = new QuickActionBar(this); mBar.addQuickAction(new QuickAction(this, R.drawable.food, "food")); Button foodButton=(Button)findViewById(R.id.food); foodButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mBar.show(v); } }); } } 

这是我的mainmenu.xml

          

这是我的LogCat。

 > 03-23 10:21:27.887: D/dalvikvm(395): GC_FOR_ALLOC freed 54K, 4% free 6389K/6595K, paused 48ms 03-23 10:21:27.937: I/dalvikvm-heap(395): Grow heap (frag case) to 10.253MB for 4096016-byte allocation 03-23 10:21:28.018: D/dalvikvm(395): GC_FOR_ALLOC freed <1K, 3% free 10389K/10631K, paused 47ms 03-23 10:21:28.128: D/dalvikvm(395): GC_CONCURRENT freed <1K, 3% free 10389K/10631K, paused 3ms+2ms 03-23 10:21:28.967: V/TLINE(395): new: android.text.TextLine@40654a10 03-23 10:21:36.497: D/AndroidRuntime(395): Shutting down VM 03-23 10:21:36.497: W/dalvikvm(395): threadid=1: thread exiting with uncaught exception (group=0x40014760) 03-23 10:21:36.507: E/AndroidRuntime(395): FATAL EXCEPTION: main 03-23 10:21:36.507: E/AndroidRuntime(395): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bombil.ramada/com.bombil.ramada.MainMenu}: java.lang.ClassCastException: android.app.Application cannot be cast to greendroid.app.GDApplication 03-23 10:21:36.507: E/AndroidRuntime(395): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1748) 03-23 10:21:36.507: E/AndroidRuntime(395): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764) 03-23 10:21:36.507: E/AndroidRuntime(395): at android.app.ActivityThread.access$1500(ActivityThread.java:122) 03-23 10:21:36.507: E/AndroidRuntime(395): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002) 03-23 10:21:36.507: E/AndroidRuntime(395): at android.os.Handler.dispatchMessage(Handler.java:99) 03-23 10:21:36.507: E/AndroidRuntime(395): at android.os.Looper.loop(Looper.java:132) 03-23 10:21:36.507: E/AndroidRuntime(395): at android.app.ActivityThread.main(ActivityThread.java:4025) 03-23 10:21:36.507: E/AndroidRuntime(395): at java.lang.reflect.Method.invokeNative(Native Method) 03-23 10:21:36.507: E/AndroidRuntime(395): at java.lang.reflect.Method.invoke(Method.java:491) 03-23 10:21:36.507: E/AndroidRuntime(395): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 03-23 10:21:36.507: E/AndroidRuntime(395): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 03-23 10:21:36.507: E/AndroidRuntime(395): at dalvik.system.NativeStart.main(Native Method) 03-23 10:21:36.507: E/AndroidRuntime(395): Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to greendroid.app.GDApplication 03-23 10:21:36.507: E/AndroidRuntime(395): at greendroid.app.GDActivity.getGDApplication(GDActivity.java:205) 03-23 10:21:36.507: E/AndroidRuntime(395): at greendroid.app.GDActivity.onCreate(GDActivity.java:147) 03-23 10:21:36.507: E/AndroidRuntime(395): at com.bombil.ramada.MainMenu.onCreate(MainMenu.java:18) 03-23 10:21:36.507: E/AndroidRuntime(395): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 03-23 10:21:36.507: E/AndroidRuntime(395): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712) 03-23 10:21:36.507: E/AndroidRuntime(395): ... 11 more 03-23 10:22:58.089: D/dalvikvm(446): GC_FOR_ALLOC freed 55K, 4% free 6389K/6595K, paused 48ms 03-23 10:22:58.128: I/dalvikvm-heap(446): Grow heap (frag case) to 10.253MB for 4096016-byte allocation 03-23 10:22:58.207: D/dalvikvm(446): GC_FOR_ALLOC freed <1K, 3% free 10389K/10631K, paused 46ms 03-23 10:22:58.308: D/dalvikvm(446): GC_CONCURRENT freed <1K, 3% free 10389K/10631K, paused 4ms+2ms 03-23 10:22:59.317: V/TLINE(446): new: android.text.TextLine@40654d68 03-23 10:23:01.357: D/AndroidRuntime(446): Shutting down VM 03-23 10:23:01.357: W/dalvikvm(446): threadid=1: thread exiting with uncaught exception (group=0x40014760) 03-23 10:23:01.367: E/AndroidRuntime(446): FATAL EXCEPTION: main 03-23 10:23:01.367: E/AndroidRuntime(446): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bombil.ramada/com.bombil.ramada.MainMenu}: java.lang.ClassCastException: android.app.Application cannot be cast to greendroid.app.GDApplication 03-23 10:23:01.367: E/AndroidRuntime(446): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1748) 03-23 10:23:01.367: E/AndroidRuntime(446): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764) 03-23 10:23:01.367: E/AndroidRuntime(446): at android.app.ActivityThread.access$1500(ActivityThread.java:122) 03-23 10:23:01.367: E/AndroidRuntime(446): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002) 03-23 10:23:01.367: E/AndroidRuntime(446): at android.os.Handler.dispatchMessage(Handler.java:99) 03-23 10:23:01.367: E/AndroidRuntime(446): at android.os.Looper.loop(Looper.java:132) 03-23 10:23:01.367: E/AndroidRuntime(446): at android.app.ActivityThread.main(ActivityThread.java:4025) 03-23 10:23:01.367: E/AndroidRuntime(446): at java.lang.reflect.Method.invokeNative(Native Method) 03-23 10:23:01.367: E/AndroidRuntime(446): at java.lang.reflect.Method.invoke(Method.java:491) 03-23 10:23:01.367: E/AndroidRuntime(446): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 03-23 10:23:01.367: E/AndroidRuntime(446): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 03-23 10:23:01.367: E/AndroidRuntime(446): at dalvik.system.NativeStart.main(Native Method) 03-23 10:23:01.367: E/AndroidRuntime(446): Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to greendroid.app.GDApplication 03-23 10:23:01.367: E/AndroidRuntime(446): at greendroid.app.GDActivity.getGDApplication(GDActivity.java:205) 03-23 10:23:01.367: E/AndroidRuntime(446): at greendroid.app.GDActivity.onCreate(GDActivity.java:147) 03-23 10:23:01.367: E/AndroidRuntime(446): at com.bombil.ramada.MainMenu.onCreate(MainMenu.java:18) 03-23 10:23:01.367: E/AndroidRuntime(446): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 03-23 10:23:01.367: E/AndroidRuntime(446): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712) 03-23 10:23:01.367: E/AndroidRuntime(446): ... 11 more 03-23 10:26:58.047: D/dalvikvm(490): GC_FOR_ALLOC freed 54K, 5% free 6311K/6595K, paused 100ms 03-23 10:26:58.097: I/dalvikvm-heap(490): Grow heap (frag case) to 10.176MB for 4096016-byte allocation 03-23 10:26:58.167: D/dalvikvm(490): GC_FOR_ALLOC freed <1K, 4% free 10310K/10631K, paused 39ms 03-23 10:26:58.267: D/dalvikvm(490): GC_CONCURRENT freed <1K, 4% free 10310K/10631K, paused 5ms+4ms 03-23 10:26:59.298: V/TLINE(490): new: android.text.TextLine@406513b8 03-23 10:27:07.167: D/AndroidRuntime(490): Shutting down VM 03-23 10:27:07.167: W/dalvikvm(490): threadid=1: thread exiting with uncaught exception (group=0x40014760) 03-23 10:27:07.177: E/AndroidRuntime(490): FATAL EXCEPTION: main 03-23 10:27:07.177: E/AndroidRuntime(490): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bombil.ramada/com.bombil.ramada.MainMenu}: java.lang.ClassCastException: android.app.Application cannot be cast to greendroid.app.GDApplication 03-23 10:27:07.177: E/AndroidRuntime(490): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1748) 03-23 10:27:07.177: E/AndroidRuntime(490): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764) 03-23 10:27:07.177: E/AndroidRuntime(490): at android.app.ActivityThread.access$1500(ActivityThread.java:122) 03-23 10:27:07.177: E/AndroidRuntime(490): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002) 03-23 10:27:07.177: E/AndroidRuntime(490): at android.os.Handler.dispatchMessage(Handler.java:99) 03-23 10:27:07.177: E/AndroidRuntime(490): at android.os.Looper.loop(Looper.java:132) 03-23 10:27:07.177: E/AndroidRuntime(490): at android.app.ActivityThread.main(ActivityThread.java:4025) 03-23 10:27:07.177: E/AndroidRuntime(490): at java.lang.reflect.Method.invokeNative(Native Method) 03-23 10:27:07.177: E/AndroidRuntime(490): at java.lang.reflect.Method.invoke(Method.java:491) 03-23 10:27:07.177: E/AndroidRuntime(490): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 03-23 10:27:07.177: E/AndroidRuntime(490): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 03-23 10:27:07.177: E/AndroidRuntime(490): at dalvik.system.NativeStart.main(Native Method) 03-23 10:27:07.177: E/AndroidRuntime(490): Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to greendroid.app.GDApplication 03-23 10:27:07.177: E/AndroidRuntime(490): at greendroid.app.GDActivity.getGDApplication(GDActivity.java:205) 03-23 10:27:07.177: E/AndroidRuntime(490): at greendroid.app.GDActivity.onCreate(GDActivity.java:147) 03-23 10:27:07.177: E/AndroidRuntime(490): at com.bombil.ramada.MainMenu.onCreate(MainMenu.java:18) 03-23 10:27:07.177: E/AndroidRuntime(490): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 03-23 10:27:07.177: E/AndroidRuntime(490): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712) 03-23 10:27:07.177: E/AndroidRuntime(490): ... 11 more 03-23 10:31:49.177: D/dalvikvm(567): GC_FOR_ALLOC freed 56K, 4% free 6389K/6595K, paused 47ms 03-23 10:31:49.227: I/dalvikvm-heap(567): Grow heap (frag case) to 10.253MB for 4096016-byte allocation 03-23 10:31:49.297: D/dalvikvm(567): GC_FOR_ALLOC freed <1K, 3% free 10389K/10631K, paused 40ms 03-23 10:31:49.398: D/dalvikvm(567): GC_CONCURRENT freed <1K, 3% free 10389K/10631K, paused 3ms+2ms 03-23 10:31:50.468: V/TLINE(567): new: android.text.TextLine@406405f8 03-23 10:31:52.377: D/AndroidRuntime(567): Shutting down VM 03-23 10:31:52.387: W/dalvikvm(567): threadid=1: thread exiting with uncaught exception (group=0x40014760) 03-23 10:31:52.398: E/AndroidRuntime(567): FATAL EXCEPTION: main 03-23 10:31:52.398: E/AndroidRuntime(567): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bombil.ramada/com.bombil.ramada.MainMenu}: java.lang.ClassCastException: android.app.Application cannot be cast to greendroid.app.GDApplication 03-23 10:31:52.398: E/AndroidRuntime(567): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1748) 03-23 10:31:52.398: E/AndroidRuntime(567): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764) 03-23 10:31:52.398: E/AndroidRuntime(567): at android.app.ActivityThread.access$1500(ActivityThread.java:122) 03-23 10:31:52.398: E/AndroidRuntime(567): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002) 03-23 10:31:52.398: E/AndroidRuntime(567): at android.os.Handler.dispatchMessage(Handler.java:99) 03-23 10:31:52.398: E/AndroidRuntime(567): at android.os.Looper.loop(Looper.java:132) 03-23 10:31:52.398: E/AndroidRuntime(567): at android.app.ActivityThread.main(ActivityThread.java:4025) 03-23 10:31:52.398: E/AndroidRuntime(567): at java.lang.reflect.Method.invokeNative(Native Method) 03-23 10:31:52.398: E/AndroidRuntime(567): at java.lang.reflect.Method.invoke(Method.java:491) 03-23 10:31:52.398: E/AndroidRuntime(567): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 03-23 10:31:52.398: E/AndroidRuntime(567): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 03-23 10:31:52.398: E/AndroidRuntime(567): at dalvik.system.NativeStart.main(Native Method) 03-23 10:31:52.398: E/AndroidRuntime(567): Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to greendroid.app.GDApplication 03-23 10:31:52.398: E/AndroidRuntime(567): at greendroid.app.GDActivity.getGDApplication(GDActivity.java:205) 03-23 10:31:52.398: E/AndroidRuntime(567): at greendroid.app.GDActivity.onCreate(GDActivity.java:147) 03-23 10:31:52.398: E/AndroidRuntime(567): at com.bombil.ramada.MainMenu.onCreate(MainMenu.java:18) 03-23 10:31:52.398: E/AndroidRuntime(567): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 03-23 10:31:52.398: E/AndroidRuntime(567): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712) 03-23 10:31:52.398: E/AndroidRuntime(567): ... 11 more 03-23 10:32:23.498: I/Process(567): Sending signal. PID: 567 SIG: 9 03-23 10:32:31.847: D/dalvikvm(605): GC_FOR_ALLOC freed 57K, 4% free 6389K/6595K, paused 44ms 03-23 10:32:31.887: I/dalvikvm-heap(605): Grow heap (frag case) to 10.253MB for 4096016-byte allocation 03-23 10:32:31.967: D/dalvikvm(605): GC_FOR_ALLOC freed <1K, 3% free 10389K/10631K, paused 44ms 03-23 10:32:32.057: D/dalvikvm(605): GC_CONCURRENT freed <1K, 3% free 10389K/10631K, paused 3ms+2ms 03-23 10:32:32.857: V/TLINE(605): new: android.text.TextLine@40644090 03-23 10:32:43.418: D/AndroidRuntime(605): Shutting down VM 03-23 10:32:43.428: W/dalvikvm(605): threadid=1: thread exiting with uncaught exception (group=0x40014760) 03-23 10:32:43.438: E/AndroidRuntime(605): FATAL EXCEPTION: main 03-23 10:32:43.438: E/AndroidRuntime(605): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bombil.ramada/com.bombil.ramada.MainMenu}: java.lang.ClassCastException: android.app.Application cannot be cast to greendroid.app.GDApplication 03-23 10:32:43.438: E/AndroidRuntime(605): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1748) 03-23 10:32:43.438: E/AndroidRuntime(605): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764) 03-23 10:32:43.438: E/AndroidRuntime(605): at android.app.ActivityThread.access$1500(ActivityThread.java:122) 03-23 10:32:43.438: E/AndroidRuntime(605): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002) 03-23 10:32:43.438: E/AndroidRuntime(605): at android.os.Handler.dispatchMessage(Handler.java:99) 03-23 10:32:43.438: E/AndroidRuntime(605): at android.os.Looper.loop(Looper.java:132) 03-23 10:32:43.438: E/AndroidRuntime(605): at android.app.ActivityThread.main(ActivityThread.java:4025) 03-23 10:32:43.438: E/AndroidRuntime(605): at java.lang.reflect.Method.invokeNative(Native Method) 03-23 10:32:43.438: E/AndroidRuntime(605): at java.lang.reflect.Method.invoke(Method.java:491) 03-23 10:32:43.438: E/AndroidRuntime(605): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 03-23 10:32:43.438: E/AndroidRuntime(605): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 03-23 10:32:43.438: E/AndroidRuntime(605): at dalvik.system.NativeStart.main(Native Method) 03-23 10:32:43.438: E/AndroidRuntime(605): Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to greendroid.app.GDApplication 03-23 10:32:43.438: E/AndroidRuntime(605): at greendroid.app.GDActivity.getGDApplication(GDActivity.java:205) 03-23 10:32:43.438: E/AndroidRuntime(605): at greendroid.app.GDActivity.onCreate(GDActivity.java:147) 03-23 10:32:43.438: E/AndroidRuntime(605): at com.bombil.ramada.MainMenu.onCreate(MainMenu.java:18) 03-23 10:32:43.438: E/AndroidRuntime(605): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 03-23 10:32:43.438: E/AndroidRuntime(605): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712) 03-23 10:32:43.438: E/AndroidRuntime(605): ... 11 more 03-23 10:37:43.477: I/Process(605): Sending signal. PID: 605 SIG: 9 

    我只能猜测。 你的Android应用程序是否extends GDApplication

    例如(在AndroidManifest.xml ):

      ... ... 

    你应该在你的课堂上这样做:

     public class CatalogApplication extends GDApplication { @Override public Class getHomeActivityClass() { return CatalogActivity.class; } @Override public Intent getMainApplicationIntent() { return new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.app_url))); } } 

    您还可以下载GDCatalog示例应用程序并在Eclipse中运行它。