Android java.lang.ClassCastException:MainActivity无法强制转换为android.support.v4.app.FragmentActivity

时间:2017-11-09 11:53:29

标签: android-fragments google-oauth updates youtube-data-api service-accounts

我正在尝试获取帐户权限(因此我可以从YouTube数据API服务器上阅读),因此使用 EasyPermissions.requestPermissions 我打开一个窗口,要求用户提供显示消息的权限:< em>“此应用需要访问您的Google帐户(通过通讯录)”。当您按OK时,它会崩溃。 LogCat显示致命异常:

java.lang.ClassCastException: com.dtek.youtube.MainActivity cannot be cast to android.support.v4.app.FragmentActivity at  
    pub.devrel.easypermissions.RationaleDialogClickListener.onClick(RationaleDialogClickListener.java:57)

发生崩溃的RationaleDialogClickListener.java中的第57行是:

ActivityCompat.requestPermissions((FragmentActivity) mHost, mConfig.permissions, mConfig.requestCode);

根据其他类似情况,解决方案可能只是更改 RationaleDialogClickListener.java 中存在的一个导入库:

发件人:import android.support.v4.app.Fragment ;

to:import android.app.Fragment ;

问题是 RationaleDialogClickListener.java 是只读的。将禁用更改为可写入的锁定,并且鼠标右键不显示更改选项。 有人说尝试将java文件导入为模块。但是,当我这样做时,它说路径不存在(我的操作系统是Ubuntu 16.04)。 路径是:

/home/barmistias/.gradle/caches/modules-2/files-2.1/pub.devrel/easypermissions/0.3.0/fbcbfe8a871702db53e5be80e1f2da72c733655d/easypermissions-0.3.0-sources.jar!/pub/devrel/easypermissions/ RationaleDialogClickListener.java

此文件是名为的外部库的一部分: pub.devrel / easypermissions / 0.3.0

最后,编码此权限的MainActivity扩展了YouTubeBaseActivity。也许相关,因为其他案例正在扩展Fragment类。那么,任何解决这种封锁的想法?感谢

P.S。:这可能是Android Studio SDK损坏更新造成的问题吗?因为我认为我之前的版本没有这个问题。

0 个答案:

没有答案