Flutter:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED:installPackageLI期间解析失败

Abi*_*san 9 android-intent firebase flutter android-12

我的 flutter 应用程序未安装在 Android 12 版本上。我尝试过android:exported,但没有任何效果。它向我展示了这种类型的错误-

\n
\xe2\x9c\x93  Built build/app/outputs/flutter-apk/app-debug.apk.\nInstalling build/app/outputs/flutter-apk/app.apk...                 3.3s\nError: ADB exited with exit code 1\nPerforming Streamed Install\n\nadb: failed to install /Users/abir/Documents/Office\nWork/MediMate-App-Old-Version/build/app/outputs/flutter-apk/app.apk: Failure\n[INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI:\n/data/app/vmdl489268217.tmp/base.apk (at Binary XML file line #125):\nio.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService: Targeting S+ (version 31 and above)\nrequires that an explicit value for android:exported be defined when intent filters are present]\nError launching application on sdk gphone64 x86 64.\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的AndroidManifest.xml文件

\n
<manifest xmlns:android="http://schemas.android.com/apk/res/android"\n    package="care.example.health">\n    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>\n    <uses-permission android:name="android.permission.INTERNET" />\n    <uses-permission android:name="android.permission.RECORD_AUDIO" />\n    <uses-permission android:name="android.permission.CAMERA" />\n    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />\n    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />\n    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>\n    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>\n\n    <!-- The Agora SDK requires Bluetooth permissions in case users are using Bluetooth devices.-->\n    <uses-permission android:name="android.permission.BLUETOOTH" />\n\n    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>\n    <uses-permission android:name="android.permission.VIBRATE" />\n\n    <uses-permission android:name="android.permission.INTERNET" />\n    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />\n    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />\n   <application\n        android:label="example"\n        android:name="${applicationName}"\n        android:icon="@mipmap/ic_launcher">\n        <activity\n            android:exported="true"\n            android:name=".MainActivity"\n            \n            android:launchMode="singleTop"\n            android:theme="@style/LaunchTheme"\n            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"\n            android:hardwareAccelerated="true"\n            android:windowSoftInputMode="adjustResize">\n            <!-- Specifies an Android theme to apply to this Activity as soon as\n                 the Android process has started. This theme is visible to the user\n                 while the Flutter UI initializes. After that, this theme continues\n                 to determine the Window background behind the Flutter UI. -->\n            <meta-data\n              android:name="io.flutter.embedding.android.NormalTheme"\n              android:resource="@style/NormalTheme"\n              />\n            <intent-filter \n                android:exported="false">\n                <action android:name="android.intent.action.MAIN"/>\n                <category android:name="android.intent.category.LAUNCHER"/>\n            </intent-filter>\n            <intent-filter \n                android:exported="false">\n                <action android:name="FLUTTER_NOTIFICATION_CLICK" />\n                <category android:name="android.intent.category.DEFAULT" />\n            </intent-filter>\n        </activity>\n        <!-- Don't delete the meta-data below.\n             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->\n        <meta-data\n            android:name="flutterEmbedding"\n            android:value="2" />\n       \n    </application>\n</manifest>\n
Run Code Online (Sandbox Code Playgroud)\n

我错过了什么 ?

\n

Rai*_*0ny 13

如果您尝试在 android studio 模拟器上运行 flutter 应用程序时收到此错误消息,这为我解决了问题!

 Error: ADB exited with exit code 1
Performing Streamed Install

adb: failed to install C:\Users\aasmu\OneDrive\Proskjekt\Flutter_course\flash-chat-flutter\build\app\outputs\flutter-apk\app.apk: Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl2080833837.tmp/base.apk (at Binary XML file line #28): co.appbrewery.flash_chat.MainActivity: Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present]
Run Code Online (Sandbox Code Playgroud)

1. 找到您的 androidManifest.xml

在 android studio 的右上角,您的项目文件遵循以下路径:

'你的项目名称'/android/app/src/main/AndroidManifest.xml

使用黄色荧光笔显示 Android Studio 中的文件路径的图像

2.在AndroidManifest.xml文件中,找到这组代码:

 Error: ADB exited with exit code 1
Performing Streamed Install

adb: failed to install C:\Users\aasmu\OneDrive\Proskjekt\Flutter_course\flash-chat-flutter\build\app\outputs\flutter-apk\app.apk: Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl2080833837.tmp/base.apk (at Binary XML file line #28): co.appbrewery.flash_chat.MainActivity: Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present]
Run Code Online (Sandbox Code Playgroud)

显示两条垂直红线之间截面的图像

3. 将此行复制并粘贴到“<activity”和下一个“>”之间的某个位置。

android:exported="true" 显示粘贴在黄色“<activity”和“<”之间的线的图像

您的问题现在应该已经解决了!


如果您的问题仍然存在:

  • 确保你的颤振医生检查过,当我解决这个问题时,我检查了除 Visual Studio 之外的所有内容。(在 android studio 终端中输入“flutter doctor”)
  • 检查这个答案中提到的这两件事。/sf/answers/3949220341/


小智 5

即使我也面临同样的问题。我可以通过直接在插件中添加特定服务的以下代码来克服它。

android:exported="true"
Run Code Online (Sandbox Code Playgroud)

您可以在以下路径中找到插件代码

your_flutter_sdk_location/.pub-cache/hosted/pub.dartlang.org/package_name
Run Code Online (Sandbox Code Playgroud)


小智 0

根据您的问题,您的问题是 FlutterFirebaseMessagingService 的到达。如果你在日志中看到已经提到了

io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService: Targeting S+ (version 31 and above)
requires that an explicit value for android:exported be defined when intent filters are present]
Run Code Online (Sandbox Code Playgroud)

您只需从意图过滤器中删除多余的 android:exported="false" 即可。放在这里就像

            <intent-filter >
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
            <intent-filter>
                <action android:name="FLUTTER_NOTIFICATION_CLICK" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
Run Code Online (Sandbox Code Playgroud)

如果插件没有更新,也更新插件

  • firebase_core:^1.16.0
  • firebase_消息传递:^11.3.0