When run on android 12 it's show me an error like this
[INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI:
/data/app/vmdl752003294.tmp/base.apk (at Binary XML file line #235):
org.jitsi.meet.sdk.ConnectionService: Targeting S+ (version 31 and above) requires
that an explicit value for android:exported be defined when intent filters are
present]
Here is my androidManifest.xml file
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="eu.buddybee.consultancy"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.GALLERY"/>
<!-- Provide required visibility configuration for API level 30 and above -->
<queries>
<!-- If app checks for Web support -->
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent>
<!-- If app checks for mail support -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="mailto" />
</intent>
<!-- If app checks for SMS support -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="sms" />
</intent>
<!-- If app checks for call support -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="tel" />
</intent>
</queries>
<application tools:replace="android:label" android:label="BuddyBee" 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>
<!-- Deep linking -->
<meta-data android:name="flutter_deeplinking_enabled" android:value="true" />
<intent-filter android:autoVerify="true">
<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="buddybee.eu" />
<data android:scheme="https" android:host="buddybee.eu" />
<data android:scheme="https" android:host="www.buddybee.eu" />
<data android:scheme="http" android:host="www.buddybee.eu" />
<data android:scheme="www"/>
</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>
<!-- <service android:name="org.jitsi.meet.sdk.ConnectionService" android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE" android:exported="true">
<intent-filter>
<action android:name="android.telecom.ConnectionService" />
</intent-filter>
</service> -->
</manifest>
How can I solve this problem ?
Related
im having an issue with the error i posted, its my first time dealing with this kind of issue and i cant seem to fix it or even understand how to fix it, i would greatly appreciate some help or guidance in order to understand how to resolve this error.
I have also attached my android manifest if needed!
PlatformException(error, Unable to find explicit activity class {com.arcdevelopment.thepack/com.yalantis.ucrop.UCropActivity}; have you declared this activity in your AndroidManifest.xml, or does your intent not match its declared <intent-filter>?, null, android.content.ActivityNotFoundException: Unable to find explicit activity class {com.arcdevelopment.thepack/com.yalantis.ucrop.UCropActivity}; have you declared this activity in your AndroidManifest.xml, or does your intent not match its declared <intent-filter>?
package="com.arcdevelopment.thepack">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https" />
</intent>
<!-- If your app checks for SMS support -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="sms" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="tel" />
</intent>
</queries>
<application
android:label="The Pack"
android:name="${applicationName}"
android:icon="#mipmap/ic_launcher">
<!-- Set up the Sign in with Apple activity, such that it's callable from the browser-redirect -->
<activity
android:name="com.aboutyou.dart_packages.sign_in_with_apple.SignInWithAppleCallback"
android:exported="true"
>
<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="signinwithapple" />
<data android:path="callback" />
</intent-filter>
</activity>
<activity android:name=".myActivity"></activity>
<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:screenOrientation="portrait"
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>```
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.untitled1">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<!-- <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />-->
<queries>
<!-- If your app opens https URLs -->
<intent>
<action android:name="android.intent.action.PROCESS_TEXT" />
<data android:mimeType="text/plain" />
</intent>
<intent>
<action android:name="android.intent.action.SEARCH" />
</intent>
<intent>
<action android:name="android.intent.action.TTS_SERVICE" />
</intent> <intent>
<action android:name="android.intent.action.VIEW" />
<!-- <category android:name="android.intent.category.BROWSABLE" />-->
<data android:scheme="http" android:mimeType="text/plain" />
</intent>
<intent>
<action android:name="android.intent.action.SEND" />
<!-- <category android:name="android.intent.category.BROWSABLE" />-->
<data android:scheme="http" android:mimeType="text/plain" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<!-- <category android:name="android.intent.category.BROWSABLE" />-->
<data android:scheme="https" android:mimeType="text/plain" />
</intent>
<!-- <package android:name="com.whatsapp" />-->
<!-- <package android:name="com.whatsapp.w4b" />-->
</queries>
<application
android:requestLegacyExternalStorage="true"
android:label="fdServer"
android:icon="#mipmap/ic_launcher">
<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:exported="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" />
<!-- 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.SEND" />-->
<action android:name="android.intent.action.MAIN" />
<!-- <data android:mimeType="*/*" />-->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ProcessTextActivity"
android:exported="true"
android:label="Uplodafd"
android:launchMode="singleTop"
android:theme="#android:style/Theme.NoDisplay">
<intent-filter>
<!-- <action android:name="android.intent.action.MAIN" />-->
<action android:name="android.intent.action.PROCESS_TEXT" />
<category android:name="android.intent.category.DEFAULT" />
<!-- <category android:name="android.intent.category.BROWSABLE" />-->
<data android:mimeType="text/plain" />
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- <data android:scheme="http" />-->
<!-- <data android:scheme="https" />-->
</intent-filter>
</activity>
<activity
android:name=".ProcessFileActivity"
android:exported="true"
android:label="Uplodafd"
android:theme="#android:style/Theme.NoDisplay">
<intent-filter>
<!-- <action android:name="android.intent.action.MAIN" />-->
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<data android:mimeType="*/*" />
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<category android:name="android.intent.category.DEFAULT" />
</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>
What i wrong with it? is there any additional configuration needed for this in java/kotlin,manifest for android 11?
Sorry it is working
it has scrolling option.
While Installing on Android 12 I'm getting this error
adb: failed to install C:\Users\***\Desktop\***\build\app\outputs\flutter-apk\app.apk: Failure
[INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl159430148.tmp/base.apk (at
Binary XML file line #263): com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver: Targeting S+
(version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present]
AndroidManifest file
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ordeno">
<application
android:label="abcd"
android:name="${applicationName}"
android:icon="#mipmap/ic_launcher">
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="#string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="#string/facebook_app_id"/>
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="**********" />
<activity android:name="com.facebook.FacebookActivity"
android:exported="true"
android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="#string/app_name" />
<activity
android:name="com.facebook.CustomTabActivity"
android:exported="true">
<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="#string/fb_login_protocol_scheme" />
</intent-filter>
</activity>
<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"
/> <!-- stripe flutter -->
<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="sdk"
android:host="3ds.sdk.io" />
</intent-filter>
<!-- 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>
<!-- Deep linking -->
<meta-data android:name="flutter_deeplinking_enabled" android:value="true" />
<intent-filter android:autoVerify="true">
<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="dummy.page" />
<data android:scheme="https" />
</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" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="#drawable/notification_icon"
/>
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="#string/default_notification_channel_id"
/>
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="#color/default_color"
/>
</application>
</manifest>
I have added andriod:exported="true" to all the activity tag's, it still shows the same
Issue is because of flutter_local_notifications library.
Adding below lines inside <application></application> in AndroidManifest.xml will fix the problem.
<receiver android:name="com.dexterous.flutterlocalnotifications.ActionBroadcastReceiver" />
<receiver android:exported="true" android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationReceiver" />
<receiver android:exported="true" android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
</intent-filter>
</receiver>
I have create android app which has two product flavors one is production one is staging when I have dynamic links for production I have used following data code in manifest
<data
android:host="swapitapp.page.link"
android:scheme="https"
/>
for staging following in android manifest
<data
android:host="kuncic.page.link"
android:scheme="https"
/>
but when I run code in real device I am getting following errors
A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Android resource linking failed
C:\Users\Edgar\AndroidStudioProjects\Swapit_Android\app\build\intermediates\packaged_manifests\productionRelease\AndroidManifest.xml:11: AAPT: error: unexpected element <intent-filter> found in <manifest>
.
below my Production AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="at.mksquad.swapit">
<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:host="swapitapp.page.link"
android:scheme="https"
/>
</intent-filter>
</manifest>
below for staging manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="at.mksquad.swapit">
<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:host="kuncic.page.link"
android:scheme="https"
/>
</intent-filter>
</manifest>
below my main AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="at.mksquad.swapit">
<!-- Hide in PlayStore from devices without BLE -->
<uses-feature
android:name="android.hardware.bluetooth_le"
android:required="true" /> <!-- Check for available connection -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- Write/Read DB and upload/download from storage -->
<uses-permission android:name="android.permission.INTERNET" /> <!-- Bluetooth-Access -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <!-- Needed for Android M (6.0) and above for Bluetooth usage -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- Haptic Feedback -->
<uses-permission android:name="android.permission.VIBRATE" />
<application
android:name=".SwapItApp"
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity
android:name=".ui.screenflow.splash.SplashActivity"
android:screenOrientation="portrait"
android:theme="#style/SplashTheme"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.screenflow.auth.AuthActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan">
<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:host="swapitapp.page.link"
android:scheme="https" />
</intent-filter>
</activity>
<activity android:name="at.mksquad.swapit.ui.screenflow.auth.onboarding.OnBoardingActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.screenflow.main.MainActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden|adjustResize">
<!-- <intent-filter android:label="#string/share_intent_file_title">-->
<!-- <action android:name="android.intent.action.SEND" />-->
<!-- <category android:name="android.intent.category.DEFAULT" />-->
<!-- <data android:mimeType="*/*" />-->
<!-- </intent-filter>-->
<!-- <intent-filter android:label="#string/share_intent_file_title">-->
<!-- <action android:name="android.intent.action.SEND_MULTIPLE" />-->
<!-- <category android:name="android.intent.category.DEFAULT" />-->
<!-- <data android:mimeType="*/*" />-->
<!-- </intent-filter>-->
</activity>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="#xml/provider_paths" />
</provider>
<service android:name=".services.FbMessageService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="#color/colorAccent" />
</service>
</application>
</manifest>
below my app.gradle.
where I have structure my product flavors following way
productFlavors {
production {
dimension "base"
applicationId 'at.mksquad.swapit.production'
}
staging {
applicationIdSuffix ".staging"
applicationId 'at.mksquad.swapit.staging'
}
following my project structure
I want to know where exactly I am making mistake any help greatly appreciated.
I solved my problem changing android manifest files production and staging in following way
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="at.mksquad.swapit">
<application>
<activity android:name="at.mksquad.swapit.ui.screenflow.main.MainActivity">
<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:host="swapitapp.page.link"
android:scheme="https"
/>
</intent-filter>
</activity>
</application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="at.mksquad.swapit">
<application>
<activity android:name="at.mksquad.swapit.ui.screenflow.main.MainActivity">
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<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:host="kuncic.page.link"
android:scheme="https"
/>
</intent-filter>
</activity>
</application>
</manifest>
I am trying to import Android Studio 2.3.2 project into Android Studio 3.1.3. And I am getting following error.
Manifest merger failed : Attribute application#theme
value=(#style/AlfrescoMaterialTheme) from AndroidManifest.xml:52:9-53
is also present at
[alfresco-android-app-master:mylibrary:unspecified]
AndroidManifest.xml:16:9-40 value=(#style/AppTheme). Suggestion: add
'tools:replace="android:theme"' to element at
AndroidManifest.xml:42:5-461:19 to override.
In AndroidManifest.xml 'tools:replace="android:allowBackup"' is there, when I change it with the 'tools:replace="android:theme"' as given in suggestion and Rebuild the project, It then shows following error.
Attribute application#allowBackup value=(false) from
AndroidManifest.xml:46:9-36 is also present at
AndroidManifest.xml:6:14-40 value=(true). Suggestion: add
'tools:replace="android:allowBackup"' to element at
AndroidManifest.xml:42:5-461:19 to override. alfresco-mobile-android
main manifest (this file), line 45
Here is the AndroidManifest.xml file
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2005-2015 Alfresco Software Limited.
~
~ This file is part of Alfresco Mobile for Android.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.alfresco.mobile.android.application">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Create AlfrescoAccount & retrieve AlfrescoAccount informations -->
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission
android:name="android.permission.GET_ACCOUNTS"
android:maxSdkVersion="22" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<!-- Responsible for sync operations -->
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.READ_SYNC_STATS" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<application
tools:replace="android:allowBackup"
android:name="org.alfresco.mobile.android.application.AlfrescoApplication"
android:allowBackup="false"
android:configChanges="locale|keyboardHidden|orientation|screenSize"
android:hardwareAccelerated="true"
android:label="#string/app_name"
android:largeHeap="true"
android:logo="#drawable/ic_application_logo"
android:theme="#style/AlfrescoMaterialTheme">
<!-- *************************************************************** -->
<!-- ALFRESCO APP -->
<!-- *************************************************************** -->
<activity
android:name="org.alfresco.mobile.android.application.activity.WelcomeActivity"
android:configChanges="locale|keyboardHidden|orientation|screenSize"
android:label="#string/app_name"
android:theme="#style/AlfrescoMaterialTheme"
android:launchMode="singleInstance"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW" />
<data
android:host="view_help_guide"
android:scheme="alfresco" />
</intent-filter>
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="com.alfresco.android.intent.action.CREATE_ACCOUNT" />
</intent-filter>
</activity>
<activity
android:name="org.alfresco.mobile.android.application.activity.MainActivity"
android:configChanges="locale|keyboardHidden|orientation|screenSize"
android:exported="true"
android:launchMode="singleTop"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.APPLICATION_RESTRICTIONS_CHANGED" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="org.alfresco.mobile.android.intent.ACTION_SYNCHRO_DISPLAY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!-- Fujitsu scan result -->
<intent-filter>
<action android:name="org.alfresco.mobile.android.intent.ACTION_SCAN_RESULT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="com.alfresco.android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:scheme="alfresco"
android:host="document" />
<data
android:scheme="alfresco"
android:host="folder" />
<data
android:scheme="alfresco"
android:host="file" />
<data
android:scheme="alfresco"
android:host="site" />
<data
android:scheme="alfresco"
android:host="user" />
<data
android:scheme="alfresco"
android:host="tasks" />
<data />
</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:path="/"
android:host="mobile.alfresco.com"
android:scheme="http" />
<data
android:path="/android-app"
android:host="mobile.alfresco.com"
android:scheme="http" />
</intent-filter>
</activity>
<!-- Private : Passcode Activity -->
<activity
android:name=".security.PassCodeActivity"
android:exported="false"
android:label="#string/app_name" />
<activity
android:name=".activity.InfoActivity"
android:exported="false"
android:label="#string/app_name"
android:theme="#style/AlfrescoMaterialTheme.Dialog" />
<!-- Private : Text Editor Activity -->
<activity
android:name="org.alfresco.mobile.android.application.editors.text.TextEditorActivity"
android:configChanges="locale|keyboardHidden|orientation|screenSize"
android:exported="false"
android:label="#string/file_editor_name"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="org.alfresco.mobile.android.intent.ACTION_CREATE_TEXT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<!-- used to filter rtf file -->
<data android:mimeType="text/plain" />
<data android:mimeType="text/html" />
<data android:mimeType="text/css" />
<data android:mimeType="text/xml" />
<data android:mimeType="text/x-setext" />
<data android:mimeType="text/x-javascript" />
<data android:mimeType="text/x-markdown" />
<data android:mimeType="text/mediawiki" />
<data android:mimeType="text/sgml" />
<data android:mimeType="text/tab-separated-values" />
<data android:mimeType="text/x-vcard" />
</intent-filter>
</activity>
<!-- Public : Official entry point for 3rd party application -->
<activity
android:name="org.alfresco.mobile.android.application.activity.PublicDispatcherActivity"
android:configChanges="locale|keyboardHidden|orientation|screenSize"
android:exported="true"
android:icon="#drawable/ic_application_icon"
android:label="#string/app_name"
android:logo="#drawable/ic_application_icon"
android:theme="#style/AlfrescoMaterialTheme.Dialog"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</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="alfresco" />
</intent-filter>
</activity>
<!-- Internal : Activity As a Dialog -->
<activity
android:name="org.alfresco.mobile.android.application.activity.PrivateDialogActivity"
android:exported="false"
android:icon="#drawable/ic_application_icon"
android:label="#string/app_name"
android:logo="#drawable/ic_application_icon"
android:theme="#style/AlfrescoMaterialTheme.Dialog"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="org.alfresco.mobile.android.intent.ACTION_DISPLAY_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="org.alfresco.mobile.android.intent.ACTION_DISPLAY_OPERATIONS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="org.alfresco.mobile.android.intent.ACTION_START_PROCESS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="org.alfresco.mobile.android.intent.ACTION_EDIT_NODE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="org.alfresco.mobile.android.application.intent.IntentAPIDispatcherActivity"
android:exported="true"
android:theme="#style/MainTheme.Dialog">
<intent-filter>
<action android:name="com.alfresco.android.intent.action.CREATE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/jpg" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="com.alfresco.android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="com.alfresco.android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="org.alfresco.mobile.android.application.widgets.ActionShortcutActivity"
android:theme="#style/AlfrescoMaterialTheme.Dialog"
android:label="#string/shortcut_actions_title"
android:enabled="#bool/widgetEnabled">
<intent-filter>
<action android:name="android.intent.action.CREATE_SHORTCUT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="org.alfresco.mobile.android.application.widgets.FolderShortcutActivity"
android:theme="#style/AlfrescoMaterialTheme.Dialog"
android:label="#string/shortcut_title"
android:enabled="#bool/widgetEnabled">
<intent-filter>
<action android:name="android.intent.action.CREATE_SHORTCUT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- *************************************************************** -->
<!-- WIDGET -->
<!-- *************************************************************** -->
<receiver
android:name="org.alfresco.mobile.android.application.widgets.ToolbarWidgetProvider"
android:enabled="#bool/widgetEnabled">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="#xml/toolbar_widget" />
</receiver>
<!-- *************************************************************** -->
<!-- CONTENT PROVIDER -->
<!-- *************************************************************** -->
<provider
android:name=".providers.FavoritesProviderImpl"
android:authorities="${PROVIDER_AUTHORITY}.favorites"
android:exported="false"
android:label="#string/sync_favorites"
android:syncable="true" />
<provider
android:name=".providers.SyncProviderImpl"
android:authorities="${PROVIDER_AUTHORITY}.sync"
android:exported="true"
android:label="#string/sync_title"
android:syncable="true" />
<provider
android:name="org.alfresco.mobile.android.application.providers.MimeTypeProviderImpl"
android:authorities="${PROVIDER_AUTHORITY}.mimetypes"
android:exported="false" />
<provider
android:name="org.alfresco.mobile.android.application.providers.OperationsProviderImpl"
android:authorities="${PROVIDER_AUTHORITY}.operations"
android:exported="false" />
<provider
android:name="org.alfresco.mobile.android.application.providers.search.HistorySearchProvider"
android:authorities="${PROVIDER_AUTHORITY}.searches"
android:exported="false" />
<provider
android:name="org.alfresco.mobile.android.application.providers.storage.StorageAccessDocumentsProvider"
android:authorities="${PROVIDER_AUTHORITY}.documents"
android:enabled="#bool/atLeastKitKat"
android:exported="true"
android:grantUriPermissions="true"
android:permission="android.permission.MANAGE_DOCUMENTS">
<intent-filter>
<action android:name="android.content.action.DOCUMENTS_PROVIDER" />
</intent-filter>
</provider>
<!-- *************************************************************** -->
<!-- SERVICES -->
<!-- *************************************************************** -->
<service
android:name="org.alfresco.mobile.android.sync.SyncContentService"
android:exported="true"
tools:ignore="ExportedService">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data
android:name="android.content.SyncAdapter"
android:resource="#xml/sync_adapter" />
</service>
<service
android:name="org.alfresco.mobile.android.platform.favorite.FavoritesService"
android:exported="true"
tools:ignore="ExportedService">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data
android:name="android.content.SyncAdapter"
android:resource="#xml/favorites_adapter" />
</service>
<!-- Used For AlfrescoAccount Authentication -->
<service
android:name="org.alfresco.mobile.android.application.accounts.AccountAuthenticationService"
android:exported="true"
tools:ignore="ExportedService">
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="#xml/authenticator" />
</service>
<service
android:name="org.alfresco.mobile.android.platform.io.FileCleanerService"
android:exported="false" />
<service
android:name="org.alfresco.mobile.android.async.UploadRetryService"
android:exported="false" />
<!-- *************************************************************** -->
<!-- EXTENSION : SAMSUNG -->
<!-- *************************************************************** -->
<!-- SAMSUNG Multi Windows. -->
<uses-library
android:name="com.sec.android.app.multiwindow"
android:required="false" />
<meta-data
android:name="com.sec.android.support.multiwindow"
android:value="true" />
<meta-data
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W"
android:resource="#dimen/app_defaultsize_w" />
<meta-data
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H"
android:resource="#dimen/app_defaultsize_h" />
<meta-data
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W"
android:resource="#dimen/app_minimumsize_w" />
<meta-data
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H"
android:resource="#dimen/app_minimumsize_h" />
<!-- *************************************************************** -->
<!-- EXTENSION : ANDROID FOR WORK -->
<!-- *************************************************************** -->
<meta-data
android:name="android.content.APP_RESTRICTIONS"
android:resource="#xml/app_restrictions" />
<!-- *************************************************************** -->
<!-- DEPRECATED -->
<!-- *************************************************************** -->
<!-- Accounts are managed by Android AccountManager. -->
<!-- Still available for migration from older version. (version <1.5) -->
<provider
android:name="org.alfresco.mobile.android.application.providers.AccountProviderImpl"
android:authorities="${PROVIDER_AUTHORITY}.accounts"
android:exported="false" />
</application>
</manifest>
its already given to you to tools:replace add tag on you line :
Suggestion: add 'tools:replace="android:allowBackup"' to element at
AndroidManifest.xml:42:5-461:19 to override. alfresco-mobile-android
main manifest (this file), line 45
As #Saif said, add attribute as suggested by studio.
Add tools:replace="android:allowBackup" in <application> tag.
For the next error, add tools:replace="android:theme", in <activity> tag containing #style/AlfrescoMaterialTheme value as theme.
And continue adding attributes as suggested by studio till no merger error occurs.