Flutter使用Platform Channel调用AAR Intent时报IllegalStateException如何解决
问题根因
你启动的第三方SDK的AadharActivity继承自AppCompatActivity,Android要求所有继承AppCompatActivity的Activity必须使用Theme.AppCompat或其子类主题,你当前的Flutter Android项目没有为该Activity配置符合要求的主题,因此触发崩溃。
解决步骤
- 配置AppCompat主题
找到Android模块下res/values/styles.xml文件,若无则新建,添加如下主题配置:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppCompatSDKTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- 可根据实际需求自定义主题属性 --> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:windowBackground">@android:color/white</item> </style> </resources>
- 为第三方Activity绑定主题
打开Android模块的AndroidManifest.xml文件,显式为该SDK的Activity指定刚才配置的主题:
<manifest ...> <application ...> <!-- 原有配置不变,新增以下Activity声明 --> <activity android:name="com.karza.aadhaarsdk.AadharActivity" android:theme="@style/AppCompatSDKTheme" /> </application> </manifest>
可选优化
你代码中为Intent设置的Intent.FLAG_ACTIVITY_NEW_TASK属于冗余配置,直接使用当前Activity的Context启动即可,不会影响功能,可自行选择是否删除。
内容的提问来源于stack exchange,提问作者Jalakam Kiran
相关产品推荐
相关产品推荐

