I'm getting a class cast exception namely
java.lang.ClassCastException: android.app.Application cannot be cast to greendroid.app.GDApplication
when I'm trying to use the green droid library in my project.Here is the concerned code. I've been trying to figure out what is going wrong but still no luck. Any sort of help will be much appreciated. Thank you.
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);
}
});
}
}
Here is my mainmenu.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/back"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="80dp"
android:id="@+id/menu"
android:background="@drawable/menu"></Button>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="80dp"
android:id="@+id/food"
android:layout_toRightOf="@id/menu"
android:background="@drawable/food"></Button>
</RelativeLayout>
</LinearLayout>
This my 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
To prevent the ClassCastException exception, one should be careful when casting objects to a specific class or interface and ensure that the target type is a child of the source type, and that the actual object is an instance of that type.
Class ClassCastExceptionThrown to indicate that the code has attempted to cast an object to a subclass of which it is not an instance. For example, the following code generates a ClassCastException : Object x = new Integer(0); System. out. println((String)x);
Introduction. ClassCastException is a runtime exception raised in Java when we try to improperly cast a class from one type to another. It's thrown to indicate that the code has attempted to cast an object to a related class, but of which it is not an instance.
It is a runtime exception that occurs when the application code attempts to cast an object to another class of which the original object is not an instance. For example, a String object cannot be cast to an Integer object and attempting to do so will result in a ClassCastException .
I can only guess. Does you android app extends GDApplication
?
For example (in AndroidManifest.xml
):
<application
android:icon="@drawable/ic_gdcatalog"
android:label="@string/app_name"
android:theme="@style/Theme.GDCatalog"
android:name=".CatalogApplication">
...
...
You should in your class do this:
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)));
}
}
You can also download GDCatalog sample Application and run it in Eclipse.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With