活动启动时的android classcastexception
我有一个简单的android活动程序。 基本上,这个类只是扩展了活动。 但是当我启动它时,我在类的构造函数中得到一个ClassCastException。 我甚至没有定义构造函数,所以它必须在超类(活动)的构造函数中 不幸的是,调试器没有给出任何关于它试图转换什么类的详细信息 以下是stacktrace:活动启动时的android classcastexception,android,android-activity,startup,classcastexception,Android,Android Activity,Startup,Classcastexception,我有一个简单的android活动程序。 基本上,这个类只是扩展了活动。 但是当我启动它时,我在类的构造函数中得到一个ClassCastException。 我甚至没有定义构造函数,所以它必须在超类(活动)的构造函数中 不幸的是,调试器没有给出任何关于它试图转换什么类的详细信息 以下是stacktrace: Thread [<1> main] (Suspended (exception RuntimeException)) ActivityThread$PackageInf
Thread [<1> main] (Suspended (exception RuntimeException))
ActivityThread$PackageInfo.makeApplication(boolean, Instrumentation) line: 649
ActivityThread.handleBindApplication(ActivityThread$AppBindData) line: 4232
ActivityThread.access$3000(ActivityThread, ActivityThread$AppBindData) line: 125
ActivityThread$H.handleMessage(Message) line: 2071
ActivityThread$H(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 123
ActivityThread.main(String[]) line: 4627
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 521
ZygoteInit$MethodAndArgsCaller.run() line: 868
ZygoteInit.main(String[]) line: 626
NativeStart.main(String[]) line: not available [native method]
AndroidManifest.xml
应用程序
android:name=“android.app.Application”
添加这个并发布完整的Manifest.xml,我也遇到了同样的问题 在我的例子中,我有一个扩展应用程序的类,它在清单文件中作为应用程序标记的属性被引用 当我重新考虑类时,Eclipse没有在清单中包含引用(可以理解,但令人沮丧和困惑),这导致了这个问题 这也与马克西姆的答案有关,但解释似乎是差异 当我更改属性名称以匹配我重命名的文件时,问题已得到解决。如果使用谷歌地图:
<uses-library android:name="com.google.android.maps" />
记住这句话。真不敢相信我忘了,浪费了这么多时间。我犯了一个愚蠢的错误
my_textView = (<b>Button</b>) findViewById(R.id.tvMyTextView);
my_textView=(按钮)findViewById(R.id.tvMyTextView);
这导致了classcastexception
我把这个改成了显而易见的
my_textView = (<b>TextView</b>) findViewById(R.id.tvMyTextView);
my_textView=(textView)findViewById(R.id.tvMyTextView);
而且成功了
我不知道是怎么回事,但我能说的是,这种愚蠢的错误也会导致上述问题。我同意马赫什的答案。。这将由于在不强制转换的情况下指定视图而发生
如果将ImageButton视图强制转换为Button视图或其他视图类,也会发生这种情况。我也遇到了同样的问题,我发现这导致了preferences.xml中的错误使用
不得不改成
我偶尔也会遇到同样的问题,有时很明显是由在XML布局中重新排序项目触发的
如果您允许应用程序在未捕获异常后继续执行,您应该会发现在“adb logcat”中获得的堆栈跟踪比在调试器停止时轻松从调试器中获得的要有用得多
这通常会将您指向异常实际发生的位置,而该位置通常不是异常在调试器中停止的位置
在我的例子中,这似乎是资源id之间的不匹配——在XML文件中移动东西似乎会混淆一些东西,以至于当我查看.findViewById(R.id.something)时,它没有返回正确的对象。我将该对象强制转换为TextView,根据XML布局的内容,它应该是完全有效的,但它崩溃了
您可能会发现您实际上有一个错误,您正在执行无效的强制转换,这肯定会导致此异常发生,但在我的案例中,强制执行清理和重建解决了问题-它从头开始重新生成编译的布局和资源ID,一切都按预期进行。有一个类似的问题,ClassCastException告诉我不能将EditText转换为TextView。我没想这么做。试图清理项目,但收到几个“无法删除文件…”错误。关闭Eclipse,重新打开它,清理项目。问题消失了。显然,这并不适用于所有情况,但这是一种可能性。您能在这里添加程序代码吗?无法从上面看出任何内容。请发布您的程序代码。@clamp:跳过异常,并允许Android收集堆栈信息。在DDMS透视图的LogCat窗格中查看它。这可能会为您提供有关正在发生的事情的更多信息。没有太多代码可显示。它是一个扩展activityedit的空类:我确实发布了代码,但我认为原因不在那里,因为它正在android activity的构造函数库中崩溃,但这没有帮助。你真的想在那里设置字符串“android.app.Application”还是实际设置应用程序的名称?编辑了答案,希望它变得更清晰。是的,我的意思正是“android.app.Application”好吧,突然我又遇到了同样的问题,但这次你的修复没有帮助:(这次是ClassNotFoundException有人能给我解释一下为什么会发生这种情况吗?ClassCastException与清单中的属性有什么关系?这是否被报告为bug?我知道这个问题很老,但只是为了尝试帮助将来可能遇到这个问题的其他人。非常有帮助..面对同样的问题,y可以吗你帮我解决这个问题。是的,这是非常正确的!当我需要ImageButton和not Button时,我花了大约三个小时试图解决所有这些错误,这篇文章中出现的所有错误都消失了!是的,我有完全相同的案例。清理了项目,它成功了。
my_textView = (<b>Button</b>) findViewById(R.id.tvMyTextView);
my_textView = (<b>TextView</b>) findViewById(R.id.tvMyTextView);