我正在使用Xamarin表单,根据Google Play商店的要求(https://developer.android.com/google/play/requirements/target-sdk),需要将Android SDK级别从11升级到12。我已经为应用程序中使用的所有活动、服务和接收器添加了“已导出”标志。还更新了PendingIntent标志的可变性。但是,当我运行应用程序时,我收到错误。
(5,5):我是一个机器人,我是一个机器人错误AMM 0000:/~机器人/对象/调试/lp/95/jl/AndroidManifest. xml警告:AndroidManifest.xml中使用的命名空间“com.google.android.gms.analytics”,需要为元素〈service#crc643a9353f6fb65c51a.FirebaseService〉显式指定AndroidManifest.xml. android:exported。如果对应组件定义了Intent过滤器,则需要针对Android 12及更高版本的应用为android:exported
指定显式值。https://developer.android.com/guide/topics/manifest/activity-element#exported有关详细信息,请参阅www.example.com。目录“obj/Debug/lp/95”来自“Xamarin.GooglePlayServices.Analytics.Impl.dll”。
/~机器人/对象/调试/机器人清单.xml(5,5):错误AMM 0000:android:exported需要为元素〈service#crc643a9353f6fb65c51a.FirebaseIdService〉显式指定。当对应组件定义了Intent过滤器时,面向Android 12及更高版本的应用需要为android:exported
指定显式值。https://developer.android.com/guide/topics/manifest/activity-element#exported有关详细信息,请参阅www.example.com。
/~机器人/对象/调试/机器人清单.xml(5,5):错误AMM 0000:android:exported需要为元素〈receiver#crc64df999be563077fc4.BootReceiver〉显式指定。如果对应组件定义了Intent过滤器,则面向Android 12及更高版本的应用需要为android:exported
指定显式值。https://developer.android.com/guide/topics/manifest/activity-element#exported有关详细信息,请参阅www.example.com。
下面是我的应用程序中使用的Nuget包。
对于如何解决这个问题有什么建议吗?
2条答案
按热度按时间lpwwtiir1#
您可以按照以下步骤解决此问题:
1.将目标SDK设置为30(以消除31+个错误)。
2.打开应用程序的清单(AndroidManifest.xml),然后单击编辑窗格底部的“合并清单”选项卡。
3.转到所有库的单独清单文件(如果创建了合并清单,则可以跳过此步骤,您可以只查看合并清单)
4.搜索是否有任何类型为activity、service、receiver或provider的条目没有导出属性,并按照下面的“修复找到的条目”部分操作每个条目。
5.将目标SDK设置回31(或更改为30之前的任何值)。
对于如何修复已知错误(无论是Android:导出="...”和工具:node=“merge”是必需的),请参考以下内容:
kr98yfug2#
很明显,这是不工作的原因是因为你的Firebase库,他们是字面上古老.我很惊讶,你仍然没有遇到任何问题,直到Android 11.
解决此问题的最佳方法是将以下库至少升级到这些版本:
祝好运
如果您有疑问,请随时返回