【问题标题】:CastClassException ( boolean to ZoomStyle )CastClassException ( 布尔到 ZoomStyle )
【发布时间】:2016-02-23 17:40:51
【问题描述】:

我在尝试启动 VideoRecorderActivity 时收到了 CastClassException。这是我的做法:

mTempVideoFile = new File(getContext().getFilesDir(), DateTime.now().getMillis()+"videoAndroid.mp4");

Intent takeVideoIntent=new VideoRecorderActivity.IntentBuilder(getContext())
            .quality(VideoRecorderActivity.Quality.LOW)
            .durationLimit(60000)
            .to(mTempVideoFile)
            .debug()
            .build();

startActivityForResult(takeVideoIntent, ACTION_TAKE_VIDEO);

堆栈跟踪:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.m360learning.android/com.commonsware.cwac.cam2.VideoRecorderActivity}: java.lang.ClassCastException: java.lang.Boolean cannot be cast to com.commonsware.cwac.cam2.ZoomStyle
                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                       at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                       at android.os.Looper.loop(Looper.java:148)
                                                       at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                    Caused by: java.lang.ClassCastException: java.lang.Boolean cannot be cast to com.commonsware.cwac.cam2.ZoomStyle
                                                       at com.commonsware.cwac.cam2.CameraFragment.getZoomStyle(CameraFragment.java:452)
                                                       at com.commonsware.cwac.cam2.CameraFragment.onCreateView(CameraFragment.java:203)
                                                       at android.app.Fragment.performCreateView(Fragment.java:2220)
                                                       at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:973)
                                                       at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1148)
                                                       at android.app.BackStackRecord.run(BackStackRecord.java:793)
                                                       at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1535)
                                                       at android.app.FragmentController.execPendingActions(FragmentController.java:325)
                                                       at android.app.Activity.performStart(Activity.java:6267)
                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                       at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                       at android.os.Looper.loop(Looper.java:148) 
                                                       at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                       at java.lang.reflect.Method.invoke(Native Method) 
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

另外我 skipConfirm() 在文档中,但在我的代码中没有被识别,这让我觉得我可能有错误的库版本。

我取自这个 maven repo "https://s3.amazonaws.com/repo.commonsware.com",这个版本是'com.commonsware.cwac:cam2:0.5.+'

谢谢!

【问题讨论】:

    标签: android commonsware-cwac


    【解决方案1】:

    我在尝试启动 VideoRecorderActivity 时遇到了 CastClassException

    是的,那是a bug。我会尽快解决这个问题。

    此外,我的 skipConfirm() 在文档中,但在我的代码中没有被识别,这让我觉得我可能有错误的库版本。

    不,这是一个文档错误,因为在静态图片上只有确认屏幕,而不是视频。

    【讨论】:

    • 好的,我等更新。更正后请在此处通知我。我看了看代码,似乎错误来自CameraFragment的第130行,我认为您应该删除此行,它应该可以正常工作,或者将其替换为args.putSerializable("zoomStyle", ZoomStyle.NONE);更明确
    • @RenaudFavier:正确,需要删除该行。最初,我将它作为布尔值,然后切换到 ZoomStyle 枚举。但是,我没有检查视频录制路径,因此没有发现我仍然将它作为boolean 保存在那里。 v0.5.1 随此修复一起发布。但是,Gradle 倾向于每天只检查一次通配符版本更新。您可能需要将您的依赖项更新为专门针对 0.5.1 而不是 0.5.+ 以下拉更新的工件。
    猜你喜欢
    • 1970-01-01
    • 2010-10-18
    • 2021-10-18
    • 2020-02-10
    • 2014-05-12
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 2017-04-08
    相关资源
    最近更新 更多