我目前在我的应用程序中使用电容2,目前无法升级到3或4,但是Google现在需要新的应用程序(以及从2022年11月开始的更新)来针对Android 31。
我更新了我的variables.gradle文件,让targetSdkVersion = 31和我的aab构建得很好,但是当我将它上传到Google时,它会抛出一个错误,并说:
您上传了一个APK或,它具有活动、活动别名、服务或带有意图筛选器的广播接收器,但没有“Android :exported”属性集。
并链接到下一页。
我检查了我的应用程序的AndroidManifest.xml并添加了正确的android:exported="true"属性,但是Google仍然抛出了相同的错误。
根据电容的GitHub问题,他们没有计划将Android 31的补丁移植到电容2。在升级到电容3/4之前,我该如何解决这个问题呢?
发布于 2022-08-16 20:09:20
经过一番调查,我发现引起问题的文件位于:
src-capacitor/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml
注意:这可能会出现在根node_modules文件中。我在使用类星体(v1)。
如果您正在本地构建,您只需编辑该文件并从以下位置更改以下行:
<service android:name="com.getcapacitor.CapacitorFirebaseMessagingService" android:stopWithTask="false">
至
<service android:name="com.getcapacitor.CapacitorFirebaseMessagingService" android:stopWithTask="false" android:exported="true">
如果您正在使用构建服务器,并且/或希望在代码中进行此更改,则可以编写脚本在构建时编辑该行,或者使用类似于贴片包装的内容。
对我来说,这是我唯一需要做的改变,我可以提交我的应用程序到谷歌播放,但如果你使用其他电容插件,有机会,他们需要更新类似。在android中打开Android项目,导航到主AndroidManifest.xml (app/src/main/AndroidManifest.xml),然后单击文件窗口底部的“Manifest”按钮。

此视图将合并项目使用的所有AndroidManifest.xml文件,如果它找到需要添加android:exported="true/false"的文件,它将抛出一个错误(因此您可以找到这些文件并修复它们,或者更新那些依赖项,如果它们已经修复了它们)
https://stackoverflow.com/questions/73379779
复制相似问题