본문 바로가기

IT세상/플러터(Flutter)

플러터(Flutter) - INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

반응형

플러터 빌드시 다음과 같은 에러가 발생했습니다.

Error: ADB exited with exit code 1
Performing Streamed Install

adb: failed to install C:\MyProject\프로젝트이름\build\app\outputs\flutter-apk\app.apk: Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl1841966364.tmp/base.apk (at Binary XML file line #22): com.example.teset.MainActivity: Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present]
Error launching application on sdk gphone64 x86 64.

타켓버전 31이상이면 android:exported가 필요하다네요.

project > android > build.gradle 파일을 열어보면 실제로 targetSdkVersion 이 31로 설정되어있는것을 확인할 수 있습니다.

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.test"
        minSdkVersion 23
        targetSdkVersion 31
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

해결을 위해 android > app > src > main > AndroidManifest.xml 파일을 열어줍니다.

하단과 같이 activity 항목에 android:exported="true" 를 추가해줍니다.

 <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize"
            android:exported="true">

다시 빌드를 실행해보면 정상 빌드되는것을 확인할 수 있습니다.

반응형