gpt4 book ai didi

android - 检索自定义 View 时出现 ClassCastException

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:38:48 26 4
gpt4 key购买 nike

我有这样的布局:

<com.mypackage.QuadPaneHorizontalSplit
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<!-- more views here -->

</com.mypackage.QuadPaneHorizontalSplit>

QuadPaneHorizo​​ntalSplit 类扩展了 QuadPaneLayout(扩展了 LineraLayout):

public class QuadPaneHorizontalSplit extends QuadPaneLayout {

public QuadPaneHorizontalSplit(Context context) {
super(context);
}

public QuadPaneHorizontalSplit(Context context, AttributeSet attrs) {
super(context, attrs);
}

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public QuadPaneHorizontalSplit(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

@Override
protected boolean isVerticalSplit() {
return false;
}

}

在使用 setContentView 设置布局后,我尝试检索自定义 View :

QuadPaneLayout quadPaneLayout = (QuadPaneLayout) findViewById(R.id.root_layout);

一般情况下效果很好,但我收到了一些崩溃报告,但有以下异常:

java.lang.ClassCastException: com.mypackage.QuadPaneHorizontalSplit cannot be cast to com.mypackage.QuadPaneLayout

QuadPaneHorizo​​ntalSplit 显然扩展了 QuadPaneLayout,因此不应该出现异常。我收到来自 Android 4.x 设备和不同制造商的崩溃报告。有趣的是,所有设备都已获得 root 权限,所以这可能是某些自定义 rom 的问题?请注意,这行代码每天执行数千次而没有出现问题,到目前为止我只遇到了 13 次崩溃 (BugSense),但我仍然想弄清楚这个问题。

我知道这个:https://stackoverflow.com/a/7823787/534471但我没有为此布局使用 include,我不想添加合并标签,因为这可能会产生不良影响。

有人知道这里发生了什么吗?

最佳答案

我终于找到了这个问题的答案,其他开发者可能也会感兴趣。

由于我遇到了许多其他无法解释的崩溃,包括 VerifyErrors、ClassNotFoundExceptions 和 ActivityNotFoundExceptions,我对这些崩溃报告的来源产生了怀疑。我添加了一些“额外代码”以确保应用程序未被篡改,如果是错误报告会显示这一点。事实上,所有 ClassCastException 崩溃都发生在我的应用程序明显被破解的实例中,这也可以解释为什么我只收到付费版本应用程序的崩溃报告,以及为什么付费应用程序崩溃的频率似乎比免费应用程序高得多。

也许是时候花额外的钱购买 DexGuard 许可证了......

关于android - 检索自定义 View 时出现 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21832517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com