Android Studio运行计分器App到手机报Runtime Exception异常求解决
问题原因
报错核心原因是你项目中的MainActivity继承了AppCompatActivity,AppCompat体系要求关联的主题必须是Theme.AppCompat或其子类主题,否则启动Activity就会抛出该运行时异常。你的布局和Java业务逻辑代码无逻辑错误,无需修改。
修复步骤
1. 修改主题配置
找到项目res/values/目录下的themes.xml(旧版本Android Studio对应styles.xml)文件,确保应用主题的父类为AppCompat系列主题,示例配置如下:
<!-- 父主题可根据需求选择,只要属于AppCompat的子类即可,比如以下几个都是合法的: - Theme.AppCompat.Light - Theme.AppCompat.Light.NoActionBar - Theme.MaterialComponents.DayNight.DarkActionBar(Material主题也是AppCompat的子类) --> <style name="Theme.CourtCounter" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/purple_500</item> <item name="colorPrimaryVariant">@color/purple_700</item> <item name="colorOnPrimary">@color/white</item> </style>
2. 检查清单文件配置
打开AndroidManifest.xml,确认application标签或MainActivity的标签下android:theme属性引用了上述正确的AppCompat主题:
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" <!-- 此处theme属性值要和你第一步定义的主题名一致 --> android:theme="@style/Theme.CourtCounter"> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
可选替代方案
如果不需要使用AppCompat的特性,也可以直接修改MainActivity的父类,将:
public class MainActivity extends AppCompatActivity
修改为:
public class MainActivity extends Activity
该方案无需修改主题即可运行,但不推荐使用,会丢失部分AndroidX兼容特性。
修改完成后重新编译运行项目即可正常启动App。
内容的提问来源于stack exchange,提问作者Karan Soni
相关产品推荐
相关产品推荐

