skip to Main Content

I want to upload my Flutter AppBunble to PlayStore but I got this message from PlayStore:

enter image description here

And Here are AndroidManifest.xml codes:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="co...">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
        android:usesCleartextTraffic="true"
        android:icon="@mipmap/ic_launcher"
        android:label="... هروی">
        <activity
            android:name=".MainActivity"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:launchMode="singleTop"
            android:exported="true"
            android:theme="@style/LaunchTheme"
            android:windowSoftInputMode="adjustResize">
            <!-- Specifies an Android theme to apply to this Activity as soon as
                 the Android process has started. This theme is visible to the user
                 while the Flutter UI initializes. After that, this theme continues
                 to determine the Window background behind the Flutter UI. -->
            <meta-data
                android:name="io.flutter.embedding.android.NormalTheme"
                android:resource="@style/NormalTheme" />
            <!-- Displays an Android View that continues showing the launch screen
                 Drawable until Flutter paints its first frame, then this splash
                 screen fades out. A splash screen is useful to avoid any visual
                 gap between the end of Android's launch screen and the painting of
                 Flutter's first frame. -->
            <meta-data
                android:name="io.flutter.embedding.android.SplashScreenDrawable"
                android:resource="@drawable/launch_background" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data
                    android:scheme="http"
                    android:host="akhlaqmarefat.com" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data
                    android:scheme="http"
                    android:host="host"
                    android:pathPrefix="/book" />
            </intent-filter>
        </activity>
        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
        <uses-library
            android:name="org.apache.http.legacy"
            android:required="false" />

    </application>
</manifest>

I run this command to generate AppBundle:

flutter build appbundle --obfuscate --split-debug-info=~/Projects/Lajward/LibraryApp

My System Info:

Flutter 3.0.2

Dart 2.17.3

Ubuntu 22.04 LTS

And also I tried all of the answers in this post, but still the same issue.

Please help me with what is wrong exactly here. Thanks

3

Answers


  1. Chosen as BEST ANSWER

    After unit testing, we found the problem was from this package epub_viewer: ^0.2.5, the AndroidManifest.xml of this package was empty:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.jideguru.epub_viewer">
    </manifest>
    

    and also doesn't have any activity or service, but this solution work for me, by adding these lines of code to my AndroidManifest.xml file:

        <activity
            android:name = "com.folioreader.ui.activity.SearchActivity"
            android:exported = "true"
            tools:node="merge" />
    

    the PlayStore accepted my AppBundle.


  2. Main Suggestion: You have to set your android:exported=true for the activity.
    For more details see here:
    https://developer.android.com/guide/topics/manifest/activity-element#exported

    Suggestion 2:
    Also, if you are using packages which have native code and include an activity then you might also have to add android:exported flag there also.

    Suggestion 3(Workaround):
    If possible you can change your target SDK version below the API level of Android12 to make it go away.

    Edit:
    If you are using third party packages then you might try checking if all your other packages come with support of Android 12. Try running pub outdate to see the packages which can be upgraded or manually check all the packages which you have:
    To Check:
    Go to your FlutterSDK Path and go to .pub-cache/hosted/
    and look at the build.gradle file for each of the package you are using cause many packages might be having target sdk below 12 which might be causing the issue. Also try updating those packages.

    Also, try without obfuscation it might solve your problem.

    Login or Signup to reply.
  3. Simply open your native app as below
    enter image description here

    After opening that go through your android manifest file i seen that you have already added the exported="true" in mainactivity but after opening the manifest file see the error and suggestions in manifest

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search