How do I fix the Google play app bundle issue - flutter

How do I fix the Google play app bundle issue which stats the the APK or Andriod App Bundle which has an activity, activity alias, service or broadcast reciever with intent filter, but without android: exported property set this file can't be installed on Android 12 or higher.

In manifest. Xml add android exported true like
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:theme="#style/LaunchTheme"
</activity>

Related

When I run a Flutter project, it says "build failed due to use of deprecated android v1 embedding" [duplicate]

I have an error in the flutter project that I cloned from GitHub. I tried this method but it didn't work
<application
android:name="io.flutter.app.FlutterApplication"
To:
<application
android:name="${applicationName}"
error:
AndroidManifest.xml:
It may sound like a fake solution, but indeed, the easiest way to resolve this is:
Delete the android folder.
Run flutter create .
The command will recreate the android folder with the already migrated code. Also, the command will create folders for the other stable platforms (e.g. web, windows), so you could ignore those and just delete them or trigger the flutter create command by defining android platform - flutter create --platforms=android ..
The best solution I found when I got this problem with my older Flutter projects is to start fresh.
Rename the old project folder.
Create a new Flutter project using the latest Android Studio or command line.
Copy/paste the old code from your backup folder.
Be careful not to replace any of the control files: pubspec.yaml, Android folder, iOS folder, Gradle, etc.
You will find the problem solved.
Add the following code in android manifest after activity
<meta-data
android:name="flutterEmbedding"
android:value="2" />
In project build.gradle add the following code in buildscript
ext.kotlin_version = '1.6.10'
And change gradle version in gradle-wrapper.properties
My manifest file
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.stackoverflowexample">
<application
android:label="stackoverflowexample"
android:name="${applicationName}"
android:icon="#mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:exported="true"
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">
<!-- 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"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</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" />
</application>
</manifest>
Add below lines in AndroidManifest.xml file
<meta-data
android:name="flutterEmbedding"
android:value="2" />
For more details : https://docs.flutter.dev/release/breaking-changes/android-v1-embedding-create-deprecation

Flutter build failed due to use of deprecated Android v1 embedding

I have an error in the flutter project that I cloned from GitHub. I tried this method but it didn't work
<application
android:name="io.flutter.app.FlutterApplication"
To:
<application
android:name="${applicationName}"
error:
AndroidManifest.xml:
It may sound like a fake solution, but indeed, the easiest way to resolve this is:
Delete the android folder.
Run flutter create .
The command will recreate the android folder with the already migrated code. Also, the command will create folders for the other stable platforms (e.g. web, windows), so you could ignore those and just delete them or trigger the flutter create command by defining android platform - flutter create --platforms=android ..
The best solution I found when I got this problem with my older Flutter projects is to start fresh.
Rename the old project folder.
Create a new Flutter project using the latest Android Studio or command line.
Copy/paste the old code from your backup folder.
Be careful not to replace any of the control files: pubspec.yaml, Android folder, iOS folder, Gradle, etc.
You will find the problem solved.
Add the following code in android manifest after activity
<meta-data
android:name="flutterEmbedding"
android:value="2" />
In project build.gradle add the following code in buildscript
ext.kotlin_version = '1.6.10'
And change gradle version in gradle-wrapper.properties
My manifest file
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.stackoverflowexample">
<application
android:label="stackoverflowexample"
android:name="${applicationName}"
android:icon="#mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:exported="true"
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">
<!-- 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"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</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" />
</application>
</manifest>
Add below lines in AndroidManifest.xml file
<meta-data
android:name="flutterEmbedding"
android:value="2" />
For more details : https://docs.flutter.dev/release/breaking-changes/android-v1-embedding-create-deprecation

Google maps is not installed or disabled

I have an app that user google navigation but as I am trying to use it it says:
"google maps is not installed or disabled". I have read in the internet that this is an Android 11 issue. Any thoughts how to fix this?
To fix this, you will need to add the Google Maps package "com.google.android.apps.maps" as an entry in your AndroidManifest.xml entry:
<manifest package="com.your.package">
<queries>
<package android:name="com.google.android.apps.maps" />
</queries>
...
</manifest>

ionic base64togallery plugin not working in android-targetSdkVersion 29

I'm using base64-to-gallery to save images for android devices in my ionic app.
Previously it was working fine but now after added <preference name="android-targetSdkVersion" value="29" />to config.xml file, under android platform, it's not working.
Please kindly help me with it.
Finally solved the issue. To anyone who is struggling, I will explain as below.
As mentioned in the git, https://github.com/Nexxa/cordova-base64-to-gallery , ionic Cordova base64togallery plugin has been discontinued.
And also when trying to submit the ionic mobile app for Android production, it's saying that the target SDK version should be more than 29.
But as usual, if we add <preference name="android-targetSdkVersion" value="29" /> to the config.xml file under the Android platform, it will not work the base64togallery plugin (not saving images to your device)
So you have to do like below,
In your ionic project, go to build.gradle file (platforms\android\build.gradle) and change defaultTargetSdkVersion and defaultCompileSdkVersion to 29. (as below)
defaultTargetSdkVersion=29
defaultCompileSdkVersion=29
And then go to AndroidManifest.xml file
(platforms\android\app\src\main\AndroidManifest.xml) and add android:requestLegacyExternalStorage="true" to the application tag, as showing below.
<application android:hardwareAccelerated="true" android:icon="#mipmap/ic_launcher" android:label="#string/app_name" android:networkSecurityConfig="#xml/network_security_config" android:requestLegacyExternalStorage="true" android:supportsRtl="true">
Then try to build your app for debug or release versions.

unable to deploy Android APK on a blackberry device

I have been trying to figure this out for a couple of days now,
I created some apps, I followed the steps to get a signed APK (https://www.udacity.com/wiki/ud853/course_resources/creating-a-signed-apk) .
The APK installs fine on android devices, but when I try to deploy on BB device, I get a "unable to install" message. An APK (downloaded from google play to my PC, then saved to the BB device) installs fine on the BB device, but non of my apps can be installed.
I think I am missing something I should do before or after creating the signed APK. Is there a way to diagnose or find the reason the installation is failing??
Here is my manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.asamater.myapplication" >
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Solved:
minimum supported API must be 18 or under.