如何修复AndroidManifest.xml文件的合并失败,以确保Flutter构建appbundle正常工作?

edqdpe6u  于 2023-04-18  发布在  Android
关注(0)|答案(2)|浏览(169)

现在我正在尝试使用以下命令在flutter中构建我的appbundle:
flutter build appbundle --release
并收到以下错误:

Manifest merger failed : android:exported needs to be explicitly specified for <receiver>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.

我已经运行了堆栈跟踪,信息和调试,没有任何有用的东西出来。
在尝试了许多解决方案之后,主要是删除软件包或手动添加android:export=“true”,任何朝着正确方向的推动都将受到极大的赞赏。
我试着运行flutter build appbundle,并期望生成一个应用程序包文件。这适用于sdk版本30和目标版本30,但在31我得到了前面提到的错误。

brjng4g3

brjng4g31#

你需要加上

android:exported="true"

单位:./android/app/src/main/AndroidManifest.xml
活动部分靠近

android:name=".MainActivity"

它看起来像这样

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="">
    <uses-permission android:name="android.permission.INTERNET"/>
   <application
        android:label=""
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:exported="true"
8ulbf1ek

8ulbf1ek2#

我注意到这个问题是由于我没有这个接收器

<receiver
    android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

在AndroidManifest.xml文件中没有为此特定包设置接收器

相关问题