![](/img/trans.png)
[英]java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.Button
[英]ClassCastException: android.widget.Button
我这里有一个非常奇怪的问题。
我有这行代码:
SeekBar mProgressBar = (SeekBar) findViewById(R.id.SeekBar);
它会抛出一个ClassCastException:android.widget.Button,如标题所示。 XML文件如下所示:
...
<SeekBar
android:id="@+id/SeekBar"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
/>
...
如果我将代码更改为
Button mProgressBar = (Button) findViewById(R.id.SeekBar);
它“有效”(即单行有效。程序因其他原因而失败,因为它现在是一个按钮)。 我在另一个文件中有完全相同的行没有问题。 知道什么可能是错的吗?
必须是过时的自动生成的R类。 有时它会搞砸了,我刚才就知道了。 尝试清理项目并重新重建。 或者在布局XML中更改一些东西并保存,Eclipse应该刷新R类(也就是说,如果你正在使用eclipse)。
如果它是一个过时的R类而你的Eclipse没有更新它,那么只需创建一个新的XML布局文件,其内容与前一个相同。 然后删除以前的布局文件。 然后应更新您的R类。 我经常在Linux上遇到这个问题,这是适合我的解决方案。
选择项目- >清除不解决在Linux上我的问题,因为R类没有得到重新...
您是否检查过导入的右侧库中是否有正确的Button类。 有时其他库可以提供自己的实现,Eclipse将通过android.widget.Button选择它们。 显然这会导致崩溃,因为你的布局将引用android库中的按钮。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.