Maui项目无法实例化Activity ComponentInfo问题求助
解决MAUI应用Google Play上架时MainActivity找不到的问题
针对你遇到的Java.Lang.RuntimeException: Unable to instantiate activity及ClassNotFoundException问题,以下是具体解决步骤:
1. 移除AndroidManifest中手动添加的Activity节点
MAUI会根据MainActivity上的[Activity]特性自动生成Manifest中的Activity配置,手动添加会导致路径冲突或重复定义。修改后的AndroidManifest.xml如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="TCRM_Service" android:versionCode="1" android:versionName="1.0"> <application android:allowBackup="true" android:icon="@mipmap/appicon" android:label="TCRM_Service"> </application> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CAMERA" /> </manifest>
2. 确认包名与Activity特性配置
- 检查MAUI项目属性中的Android包名:打开项目Properties -> Android Manifest,确保Package name为
TCRM_Service,与MainActivity的命名空间一致。 - 你的
MainActivity代码已正确配置[Activity]特性,无需额外修改,但需确保MainLauncher = true已设置(这会让MAUI自动处理android:exported="true"属性)。
3. 清理重建项目
执行以下操作彻底清理并重建项目,避免缓存问题:
- 右键项目选择Clean
- 删除项目根目录下的
bin和obj文件夹 - 右键项目选择Rebuild
- 重新生成发布包
4. 启用Multidex(若需要)
如果应用方法数超过65536,需启用Multidex。在MAUI项目的.csproj文件中添加以下配置:
<PropertyGroup> <AndroidEnableMultiDex>true</AndroidEnableMultiDex> </PropertyGroup>
5. 避免R8/Proguard误删MainActivity
若发布时启用了代码收缩(R8/Proguard),需确保MainActivity不被混淆删除。在Platforms/Android/proguard.cfg中添加规则:
-keep class TCRM_Service.MainActivity { *; }
内容的提问来源于stack exchange,提问作者brycem1221
相关产品推荐
相关产品推荐

