金星揽月 2020-05-17 21:49 采纳率: 100%
浏览 990
已采纳

android:从Activity跳转到另一个Activity的Fragment的时候程序报错。

以下是报错信息:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.whut.imageencryptionapp, PID: 31941

java.lang.RuntimeException: 
    **Unable to instantiate activity ComponentInfo****{com.whut.imageencryptionapp/com.whut.imageencryptionapp.ui.ImageHandleActivity}: **java.lang.ClassCastExceptio**n: com.whut.imageencryptionapp.ui.ImageHandleActivity **cannot be cast to android.app.Activity       **

    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3678)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3939)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2373)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:213)
    at android.app.ActivityThread.main(ActivityThread.java:8147)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
 Caused by: java.lang.ClassCastException: com.whut.imageencryptionapp.ui.ImageHandleActivity cannot be cast to android.app.Activity
    at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
    at android.support.v4.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:43)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1257)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3663)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3939) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2373) 
    at android.os.Handler.dispatchMessage(Handler.java:107) 
    at android.os.Looper.loop(Looper.java:213) 
    at android.app.ActivityThread.main(ActivityThread.java:8147) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101) 

DeImagePickActivity相关代码如下:

            case R.id.iv_image_show_activity_back:
                /*
                Intent intent = new Intent(this, ImageHandleActivity.class);
                startActivity(intent);

                FragmentManager fragmentManager;
                Fragment fragment = new ImageHandleActivity();
                fragmentManager = getSupportFragmentManager();
                fragmentManager.beginTransaction().replace(R.id.rl_fragment1, fragment).commit();

                fragmentTransaction = fragmentManager.beginTransaction();
                ImageHandleActivity imageHandleActivity = new ImageHandleActivity();
                fragmentTransaction.replace(R.id.ll_de, imageHandleActivity).commit();

                 */

                ImageHandleActivity imageHandleActivity = new ImageHandleActivity();
                FragmentManager fragmentManager;
                fragmentManager = getSupportFragmentManager();
                fragmentManager.beginTransaction().replace(R.id.rl_fragment1,imageHandleActivity).commit();

                Intent intent = new Intent(this,ImageHandleActivity.class);
                startActivity(intent);

注释中都是我尝试过的方法,但是还是会出现异常。
我要从DeImagePickActivity跳转到ImageHandleActivity,其中ImageHandleActivity继承了Fragment,他的Activity是MainActivity。
感谢解答!

  • 写回答

1条回答

  • 有头发的猿 2020-05-18 11:41
    关注

    startActivity(intent); 中的intent 传入的class是Activity,而你的ImageHandleActivity 是Fragment,所以才会报错ClassCastException类型转换失败,如果你iv_image_show_activity_back 只是一个单纯的返回,只要保证上层activity不销毁,那么finish当前activity就可以了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法