Apk only supported by 1 device - android

I have a problem with an application that I try to publish on the platform the Play Store. When I uploaded the .apk file I have seen that it is only compatible with 1 device. I have reviewed the file AndroidManifest.xml and I have not found anything that restricts the use in other device. The application takes the same permissions as any other similar application that I have published, and this other is compatible with more than 8000 devices. The only thing that is different is that in this new app I've added the service GCM with their required permissions, and the bitcoinj-0.12.3 library. What is the reason for which is not compatible with more devices? These are all the permissions that I have declared in the file AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my.app" >
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--
The following two permissions are not required to use
Google Maps Android API v2, but are recommended.
-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!-- GCM PERMISSIONS -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.google.android.c2dm.permission.SEND" />
<permission android:name="com.my.app.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.my.app.permission.C2D_MESSAGE" />
<application android:name="com.activeandroid.app.Application"
android:allowBackup="true"
android:icon="#drawable/launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<meta-data android:name="AA_DB_NAME"
android:value="app.db" />
<meta-data android:name="AA_DB_VERSION"
android:value="1" />
<meta-data android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="myAPI_KEY" />
<activity android:name=".ui.SplashActivity"
android:label="#string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ui.PendingActivity"
android:label="#string/pending_activity"
android:screenOrientation="portrait" >
</activity>
<activity android:name=".ui.OKActivity"
android:label="#string/ok_activity"
android:screenOrientation="portrait" >
</activity>
<activity android:name=".ui.KOActivity"
android:label="#string/ko_activity"
android:screenOrientation="portrait" >
</activity>
<activity android:name=".ui.InputActivity"
android:label="#string/input_activity"
android:parentActivityName=".ui.LoggedHomeActivity"
android:screenOrientation="portrait" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data android:name="android.support.PARENT_ACTIVITY"
android:value=".ui.LoggedHomeActivity" />
</activity>
<activity android:name=".ui.LoggedHomeActivity"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#style/MyMaterialOwnTheme"
android:windowSoftInputMode="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:scheme="myapp" />
</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="bitcoin" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*" />
</intent-filter>
</activity>
<!-- [START gcm_receiver] -->
<receiver android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
<category android:name="gcm.play.android.samples.com.gcmquickstart"/>
</intent-filter>
</receiver>
<!-- [END gcm_receiver] -->
<!-- [START gcm_listener] -->
<service android:name=".gcm.NotificationService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<!-- [END gcm_listener] -->
<!-- [START instanceId_listener] -->
<service android:name=".gcm.GCMIdentificationService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
<!-- [END instanceId_listener] -->
<service android:name=".gcm.RegistrationIntentService"
android:exported="false" >
</service>
</application>
This a scrrenshot of analisis from Google Play:
EDIT: I have read the post Android app is supported by 0 devices, but I haven't managed to fix anything
EDIT 2: Posted the complete AndroidManifest.xml file.

you can prevent the problem by doing this in your build.gradle
compile 'com.google:bitcoinj:0.11.3#jar'
// the above #jar is important
// context: https://stackoverflow.com/questions/22730620/bad-apk-when- using-bitcoinj-from-maven-central
had the same with https://github.com/ligi/satoshiproof
Cause: View this answer

Related

I added Firebase Authentication and now my AndroidManifest is broken

I am building an app to find cigarettes dispensers in my area, but as I wanted to implement the Firebase and Google Sign In SDK, my whole Android Manifest and Strings.xml file broke down.
This is my Manifest-file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.turksat46.cigarettesfinder"
android:versionCode="5"
android:versionName="1.2.3" >
<uses-sdk
android:minSdkVersion="21"
android:targetSdkVersion="30" />
<!--
The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
Google Maps Android API v2, but you must specify either coarse or fine
location permissions for the "MyLocation" functionality.
-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--
The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
Google Maps Android API v2, but you must specify either coarse or fine
location permissions for the "MyLocation" functionality.
-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<queries>
<!-- Needs to be explicitly declared on Android R+ -->
<package android:name="com.google.android.apps.maps" />
<!-- For browser content -->
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent> <!-- End of browser content -->
<!-- For CustomTabsService -->
<intent>
<action android:name="android.support.customtabs.action.CustomTabsService" />
</intent>
</queries>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<application
android:allowBackup="true"
android:appComponentFactory="androidx.core.app.CoreComponentFactory"
android:debuggable="true"
android:icon="#mipmap/logo"
android:label="#string/app_name"
android:roundIcon="#mipmap/logo_round"
android:supportsRtl="true"
android:testOnly="true"
android:theme="#style/Theme.CigarettesFinder" >
<!--
The API key for Google Maps-based APIs is defined as a string resource.
(See the file "res/values/google_maps_api.xml").
Note that the API key is linked to the encryption key used to sign the APK.
You need a different API key for each encryption key, including the release key that is used to
sign the APK for publishing.
You can define the keys for the debug and release targets in src/debug/ and src/release/.
-->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="#string/google_maps_key" />
<activity
android:name="com.turksat46.cigarettesfinder.setMarkerActivity"
android:exported="true"
android:label="#string/title_activity_set_marker" />
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="cannot include that" />
<activity
android:name="com.turksat46.cigarettesfinder.MapsActivity3"
android:exported="true"
android:label="#string/title_activity_maps3" />
<activity
android:name="com.turksat46.cigarettesfinder.MapsActivity2"
android:exported="true"
android:label="#string/title_activity_maps2" />
<activity
android:name="com.turksat46.cigarettesfinder.MapsActivity"
android:exported="true"
android:label="#string/title_activity_maps" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.turksat46.cigarettesfinder.SettingsActivity"
android:exported="true"
android:label="#string/title_activity_settings" />
<activity android:name="com.turksat46.cigarettesfinder.MenuPage" />
<!-- Needs to be explicitly declared on P+ -->
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<service
android:name="com.google.firebase.components.ComponentDiscoveryService"
android:directBootAware="true"
android:exported="false" >
<meta-data
android:name="com.google.firebase.components:com.google.firebase.firestore.FirestoreRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar" />
<meta-data
android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseAuthRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar" />
<meta-data
android:name="com.google.firebase.components:com.google.firebase.database.DatabaseRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar" />
<meta-data
android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar" />
<meta-data
android:name="com.google.firebase.components:com.google.firebase.installations.FirebaseInstallationsRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar" />
</service>
<activity
android:name="com.google.firebase.auth.internal.GenericIdpActivity"
android:excludeFromRecents="true"
android:exported="true"
android:launchMode="singleTask"
android:theme="#android:style/Theme.Translucent.NoTitleBar" >
<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="firebase.auth"
android:path="/"
android:scheme="genericidp" />
</intent-filter>
</activity>
<activity
android:name="com.google.firebase.auth.internal.RecaptchaActivity"
android:excludeFromRecents="true"
android:exported="true"
android:launchMode="singleTask"
android:theme="#android:style/Theme.Translucent.NoTitleBar" >
<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="firebase.auth"
android:path="/"
android:scheme="recaptcha" />
</intent-filter>
</activity>
<service
android:name="com.google.firebase.auth.api.fallback.service.FirebaseAuthFallbackService"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="com.google.firebase.auth.api.gms.service.START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</service>
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<activity
android:name="com.google.android.gms.auth.api.signin.internal.SignInHubActivity"
android:excludeFromRecents="true"
android:exported="false"
android:theme="#android:style/Theme.Translucent.NoTitleBar" />
<!--
Service handling Google Sign-In user revocation. For apps that do not integrate with
Google Sign-In, this service will never be started.
-->
<service
android:name="com.google.android.gms.auth.api.signin.RevocationBoundService"
android:exported="true"
android:permission="com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION"
android:visibleToInstantApps="true" />
<activity
android:name="com.google.android.gms.common.api.GoogleApiActivity"
android:exported="false"
android:theme="#android:style/Theme.Translucent.NoTitleBar" />
<provider
android:name="com.google.firebase.provider.FirebaseInitProvider"
android:authorities="com.turksat46.cigarettesfinder.firebaseinitprovider"
android:directBootAware="true"
android:exported="false"
android:initOrder="100" />
<receiver
android:name="com.google.android.gms.measurement.AppMeasurementReceiver"
android:enabled="true"
android:exported="false" >
</receiver>
<service
android:name="com.google.android.gms.measurement.AppMeasurementService"
android:enabled="true"
android:exported="false" />
<service
android:name="com.google.android.gms.measurement.AppMeasurementJobService"
android:enabled="true"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE" /> <!-- Include the AdActivity and InAppPurchaseActivity configChanges and themes. -->
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:exported="false"
android:theme="#android:style/Theme.Translucent" />
<provider
android:name="com.google.android.gms.ads.MobileAdsInitProvider"
android:authorities="com.turksat46.cigarettesfinder.mobileadsinitprovider"
android:exported="false"
android:initOrder="100" />
<service
android:name="com.google.android.gms.ads.AdService"
android:enabled="true"
android:exported="false" />
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="com.turksat46.cigarettesfinder.androidx-startup"
android:exported="false" >
<meta-data
android:name="androidx.work.WorkManagerInitializer"
android:value="androidx.startup" />
</provider>
<service
android:name="androidx.work.impl.background.systemalarm.SystemAlarmService"
android:directBootAware="false"
android:enabled="#bool/enable_system_alarm_service_default"
android:exported="false" />
<service
android:name="androidx.work.impl.background.systemjob.SystemJobService"
android:directBootAware="false"
android:enabled="#bool/enable_system_job_service_default"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE" />
<service
android:name="androidx.work.impl.foreground.SystemForegroundService"
android:directBootAware="false"
android:enabled="#bool/enable_system_foreground_service_default"
android:exported="false" />
<receiver
android:name="androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver"
android:directBootAware="false"
android:enabled="true"
android:exported="false" />
<receiver
android:name="androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy"
android:directBootAware="false"
android:enabled="false"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
<receiver
android:name="androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy"
android:directBootAware="false"
android:enabled="false"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.BATTERY_OKAY" />
<action android:name="android.intent.action.BATTERY_LOW" />
</intent-filter>
</receiver>
<receiver
android:name="androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy"
android:directBootAware="false"
android:enabled="false"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.DEVICE_STORAGE_LOW" />
<action android:name="android.intent.action.DEVICE_STORAGE_OK" />
</intent-filter>
</receiver>
<receiver
android:name="androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy"
android:directBootAware="false"
android:enabled="false"
android:exported="false" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<receiver
android:name="androidx.work.impl.background.systemalarm.RescheduleReceiver"
android:directBootAware="false"
android:enabled="false"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.TIME_SET" />
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
</intent-filter>
</receiver>
<receiver
android:name="androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver"
android:directBootAware="false"
android:enabled="#bool/enable_system_alarm_service_default"
android:exported="false" >
<intent-filter>
<action android:name="androidx.work.impl.background.systemalarm.UpdateProxies" />
</intent-filter>
</receiver>
<receiver
android:name="androidx.work.impl.diagnostics.DiagnosticsReceiver"
android:directBootAware="false"
android:enabled="true"
android:exported="true"
android:permission="android.permission.DUMP" >
<intent-filter>
<action android:name="androidx.work.diagnostics.REQUEST_DIAGNOSTICS" />
</intent-filter>
</receiver>
<service
android:name="androidx.room.MultiInstanceInvalidationService"
android:directBootAware="true"
android:exported="false" />
</application>
</manifest>
What do I need to do, to fix this?
I am really confused and I don't wanna delete this project!

Targeting android 12 failed with error of `android:exported`

after setting android:exported still got this error of Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter definedAfter setting all components on Manifest, still receive an error of "Error:
Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined."
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.easymountain.quechua">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"-->
<!-- tools:ignore="ScopedStorage" />-->
<!-- <uses-permission-->
<uses-permission
android:name="android.permission.CLEAR_APP_CACHE"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="com.huawei.permission.external_app_settings.USE_COMPONENT" />
<uses-permission android:name="oppo.permission.OPPO_COMPONENT_SAFE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="com.huawei.permission.external_app_settings.USE_COMPONENT" />
<uses-permission android:name="oppo.permission.OPPO_COMPONENT_SAFE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<application
android:name=".base.BaseApplication"
android:allowBackup="false"
android:fullBackupContent="false"
android:hardwareAccelerated="true"
android:icon="#mipmap/ic_launcher"
android:installLocation="internalOnly"
android:label="#string/screen_app_name"
android:largeHeap="true"
android:requestLegacyExternalStorage="true"
android:networkSecurityConfig="#xml/network_security_config"
android:screenOrientation="portrait"
android:supportsRtl="true"
android:theme="#style/AppTheme"
android:usesCleartextTraffic="true"
tools:replace="android:name,android:hardwareAccelerated,android:allowBackup,android:label">
<!-- SDKNAVIGATION -->
<activity
android:name="com.easymountain.quechua.ui.sdknavigation.MpMainActivity"
android:configChanges="orientation|screenSize|locale"
android:exported="true"
android:screenOrientation="portrait"
tools:node="merge"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />
<data android:scheme="geo" />
</intent-filter>
</activity>
<service
android:name="com.easymountain.quechua.ui.sdknavigation.navigation.delegate.MpTraceRecorder"
android:foregroundServiceType="location"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE" />
<activity
android:name="com.easymountain.quechua.ui.sdknavigation.poinative.fragment.MpVideoPlayerFullScreenActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
android:screenOrientation="landscape"
android:exported="false"
android:theme="#style/VideoPlayerTheme" />
<!-- <activity-->
<!-- android:name="com.onegravity.contactpicker.core.ContactPickerActivity"-->
<!-- android:enabled="true"-->
<!-- android:exported="false">-->
<!-- <intent-filter>-->
<!-- <category android:name="android.intent.category.DEFAULT" />-->
<!-- <category android:name="android.intent.category.BROWSABLE" />-->
<!-- </intent-filter>-->
<!-- </activity>-->
<meta-data
android:name="preloaded_fonts"
android:resource="#array/preloaded_fonts" />
<!-- SDKNAVIGATION -->
<activity
android:name=".ui.splash.SplashActivity"
android:screenOrientation="portrait"
android:exported="true"
tools:node="merge"
android:theme="#style/AppTheme.NoActionBarSplash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.authentification.AuthWebViewActivity"
android:exported="false"
android:theme="#style/Theme.AppCompat.Light.NoActionBar">
</activity>
<activity
android:name=".ui.main.MainActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"
android:launchMode="singleTop"
android:theme="#style/Theme.AppCompat.Light.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan|adjustResize"
android:exported="true"
tools:node="merge"
tools:ignore="LockedOrientationActivity">
<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="quechuahikefinder" />
</intent-filter>
<intent-filter>
<action android:name="quechuahikefindermobileapplication.HANDLE_AUTHORIZATION_RESPONSE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name="net.openid.appauth.RedirectUriReceiverActivity"
android:exported="true"
tools:node="merge">
<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="login"
android:scheme="quechuahikefinder" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="#string/mp_google_map_api_key" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="#string/facebook_app_id"
tools:replace="android:value" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true"
tools:replace="android:authorities">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="#xml/provider_paths"
tools:replace="android:resource"/>
</provider>
<service
android:name=".service.MyFirebaseMessagingService"
android:exported="false"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<receiver android:name=".ui.utils.gpsStatusListener.GpsLocationReceiver"
android:exported="true"
tools:node="merge"
tools:ignore="Instantiatable">
<intent-filter>
<action android:name="android.location.PROVIDERS_CHANGED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="com.decathlon.quechuafinder.workmanager-init"
android:exported="false"
tools:node="remove" />
</application>
</manifest>
For an app targeting Android SDK Version 31(Android 12 OS) or above we need to set the android:exported="true" for any of our app's own activity and any 3rd party library's activity in our app's manifest, where ever the <intent-filter... is added.
We faced this issue for auth0 Android SDK.

Android Manifest `INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME`

I've created a React Native and Expo app. I've ejected the app so I could add native SDKs. The app runs fine on iOS but on Android I get the error
'INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME' Invalid manifest package: must
have at least one '.' separator.
when running the app from Android Studio.
Here's my Android Manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest
package="host.exp.exponent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<permission
android:name="MyBet.permission.C2D_MESSAGE"
android:protectionLevel="signature"/>
<!-- These are required permissions to make the app run -->
<uses-permission android:name="MyBet.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- ADD PERMISSIONS HERE -->
<!-- BEGIN OPTIONAL PERMISSIONS -->
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<!-- These require runtime permissions on M -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- END OPTIONAL PERMISSIONS -->
<!-- ADD TEST PERMISSIONS HERE -->
<uses-feature android:glEsVersion="0x00030000" android:required="false" />
<application
android:name=".MainApplication"
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:largeHeap="true">
<activity
android:name=".LauncherActivity"
android:exported="true"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Translucent.NoTitleBar">
<intent-filter>
<data android:scheme="exp94a58e9903bc4b1a995b011fd737bdc1"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
<activity
android:name=".experience.ExperienceActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="#style/Theme.Exponent.Light"
android:windowSoftInputMode="adjustResize">
</activity>
<activity
android:name=".MainActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="#style/Theme.Exponent.Splash"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".experience.ShellAppActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="#style/Theme.Exponent.Splash"
android:windowSoftInputMode="adjustResize">
<!-- ADD SHELL INTENT FILTERS HERE -->
</activity>
<activity
android:name=".experience.HomeActivity"
android:label="#string/app_name"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="#style/Theme.Exponent.Light">
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
<!-- ADD DEV SETTINGS HERE -->
<activity android:name="abi25_0_0.com.facebook.react.devsupport.DevSettingsActivity"/>
<activity android:name="abi24_0_0.com.facebook.react.devsupport.DevSettingsActivity"/>
<activity android:name="abi23_0_0.com.facebook.react.devsupport.DevSettingsActivity"/>
<activity android:name="abi22_0_0.com.facebook.react.devsupport.DevSettingsActivity"/>
<activity android:name="abi21_0_0.com.facebook.react.devsupport.DevSettingsActivity"/>
<activity android:name="abi20_0_0.com.facebook.react.devsupport.DevSettingsActivity"/>
<activity android:name="abi19_0_0.com.facebook.react.devsupport.DevSettingsActivity"/>
<activity
android:name=".ExponentDevActivity"
android:exported="true"
android:label="#string/dev_activity_name"
android:screenOrientation="portrait"
android:theme="#style/Theme.Exponent.Dark"
android:windowSoftInputMode="adjustPan">
</activity>
<activity
android:name=".oauth.OAuthWebViewActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.Exponent.Light">
</activity>
<activity
android:name="net.openid.appauth.RedirectUriReceiverActivity"
tools:node="replace">
<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="MyBet" android:path="oauthredirect"/>
</intent-filter>
</activity>
<activity
android:name=".oauth.OAuthResultActivity">
</activity>
<activity
android:name=".chrometabs.ChromeTabsManagerActivity">
</activity>
<activity
android:name=".experience.ErrorActivity"
android:theme="#style/Theme.Exponent.Dark"
android:screenOrientation="portrait">
</activity>
<activity
android:name=".experience.InfoActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.Exponent.Light">
</activity>
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="#string/app_name"
android:theme="#android:style/Theme.Translucent.NoTitleBar"
tools:replace="android:theme" />
<activity
android:name="com.facebook.ads.InterstitialAdActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="#string/app_name"
android:theme="#android:style/Theme.Translucent.NoTitleBar" />
<service
android:name=".ExponentIntentService"
android:exported="false" />
<!-- Analytics -->
<receiver
android:name="host.exp.exponent.referrer.InstallReferrerReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<!--
This crashes: https://code.google.com/p/analytics-issues/issues/detail?id=667
TODO: turn it back on when it's fixed
<service
android:name="com.google.android.gms.analytics.CampaignTrackingService"
android:enabled="true"
android:exported="false" />-->
<receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
</intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false"/>
<!-- GCM -->
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
<action android:name="com.google.android.c2dm.intent.REGISTRATION"/>
<category android:name="MyBet"/>
</intent-filter>
</receiver>
<service
android:name=".gcm.ExponentGcmListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
</intent-filter>
</service>
<service
android:name=".gcm.ExponentInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>
<service
android:name=".gcm.RegistrationIntentService"
android:exported="false">
</service>
<!-- Emarsys Mobile Engage -->
<service android:name="com.emarsys.mobileengage.service.MobileEngageMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name="com.emarsys.mobileengage.service.MobileEngageInstanceIdService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<meta-data
android:name="com.emarsys.mobileengage.small_notification_icon"
android:resource="#mipmap/ic_launcher" />
<!-- ImagePicker native module -->
<activity
android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
android:theme="#style/Base.Theme.AppCompat">
</activity>
<!-- ADD FABRIC CONFIG HERE -->
<!-- BEGIN FABRIC CONFIG -->
<meta-data
android:name="io.fabric.ApiKey"
android:value="a25fafe9f9edee11a9882b32e0cd7a26df6e2c42"/>
<!-- END FABRIC CONFIG -->
<!-- ADD GOOGLE MAPS CONFIG HERE -->
<!-- BEGIN GOOGLE MAPS CONFIG -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyCPyKmt6in3JwAsogYikNNjor8qgU9stRQ"/>
<!-- END GOOGLE MAPS CONFIG -->
<!-- ADD BRANCH CONFIG HERE -->
<!-- The Facebook SDK runs FacebookInitProvider on startup and crashes if there isn't an ID here -->
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="fb0"/>
</application>
</manifest>
Does anyone have any idea what's causing this? My package name looks okay to me

UrbanAirship activity issue in manifest in eclipse android

here is my code of manifest, in which i am getting error at android:resource="#layout/ua_activity_landing_page". Code is:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="rkp.free.biblefy.your.screen"
android:versionCode="14"
android:versionName="1.4" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.android.vending.BILLING" />
<!-- Permission to get DeviceId -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- GCM connects to Google Services. -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- Keeps the processor from sleeping when a message is received. -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- Creates a custom permission so only this app can receive its messages. NOTE: the permission *must* be called PACKAGE.permission.C2D_MESSAGE,
where PACKAGE is the application's package name.-->
<permission
android:name="rkp.free.biblefy.your.screen.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="rkp.free.biblefy.your.screen.permission.C2D_MESSAGE" />
<!-- This app has permission to register and receive data message. -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- GCM requires Android SDK version 2.2 (API level 8) or above. -->
<!--
The targetSdkVersion is optional, but it's always a good practice
to target higher versions.
-->
<permission
android:name="rkp.free.biblefy.your.screen.permission.UA_DATA"
android:protectionLevel="signature" />
<uses-permission android:name="rkp.free.biblefy.your.screen.permission.UA_DATA" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application
android:name="rkp.free.biblefy.your.screen.MyApp"
android:allowBackup="true"
android:icon="#drawable/app_icon"
android:label="#string/app_name"
android:largeHeap="true"
android:theme="#style/AppTheme" >
<activity
android:name="rkp.free.biblefy.your.screen.MainActivity"
android:label="#string/app_name"
android:launchMode="singleTop"
android:noHistory="true"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="rkp.free.biblefy.your.screen.MESSAGE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="rkp.free.biblefy.your.screen.Catagories"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="rkp.free.biblefy.your.screen.Catagory_Detailed"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="rkp.free.biblefy.your.screen.PurchaseWalls"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="rkp.free.biblefy.your.screen.RK"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<data android:scheme="file" />
</intent-filter>
</activity>
<activity
android:name="rkp.free.biblefy.your.screen.Home"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="#android:style/Theme.Translucent" />
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<!-- LSM -->
<activity
android:name="com.lifestreet.android.lsmsdk.ads.InterstitialAdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
<activity
android:name="com.lifestreet.android.lsmsdk.mraid.MRAIDInterstitialActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
<activity
android:name="com.lifestreet.android.lsmsdk.VideoPlayerActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
<receiver
android:name="com.tenjin.android.TenjinReferrerReceiver"
android:exported="true" >
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<!-- REQUIRED for Urban Airship Push -->
<activity android:name="com.urbanairship.CoreActivity" />
<receiver
android:name="com.urbanairship.CoreReceiver"
android:exported="false" >
<intent-filter android:priority="-999" >
<action android:name="com.urbanairship.push.OPENED" />
<category android:name="rkp.free.biblefy.your.screen" />
</intent-filter>
</receiver>
<activity
android:name="com.urbanairship.actions.LandingPageActivity"
android:exported="false" >
<meta-data
android:name="com.urbanairship.action.LANDING_PAGE_VIEW"
android:resource="#layout/ua_activity_landing_page" />
<meta-data
android:name="com.urbanairship.push.iam.EXCLUDE_FROM_AUTO_SHOW"
android:value="true" />
<intent-filter>
<action android:name="com.urbanairship.actions.SHOW_LANDING_PAGE_INTENT_ACTION" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:scheme="message" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- REQUIRED for Urban Airship -->
<service
android:name="com.urbanairship.push.PushService"
android:label="Push Notification Service" />
<!-- Required for analytics -->
<service
android:name="com.urbanairship.analytics.EventService"
android:label="Event Service" />
<!-- Required for Actions -->
<service android:name="com.urbanairship.actions.ActionService" />
<!-- Required for Rich Push -->
<service android:name="com.urbanairship.richpush.RichPushUpdateService" />
<!-- REQUIRED for GCM -->
<receiver
android:name="com.urbanairship.push.GCMPushReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="rkp.free.biblefy.your.screen" />
</intent-filter>
</receiver>
<!-- OPTIONAL, if you want to receive push, push opened and registration completed intents -->
<!-- Replace the receiver below with your package and class name -->
<receiver
android:name="rkp.free.biblefy.your.screen.IntentReceiver"
android:exported="false" >
<intent-filter>
<action android:name="com.urbanairship.push.CHANNEL_UPDATED" />
<action android:name="com.urbanairship.push.OPENED" />
<action android:name="com.urbanairship.push.DISMISSED" />
<action android:name="com.urbanairship.push.RECEIVED" />
<!-- MODIFICATION REQUIRED - Use your package name as the category -->
<category android:name="rkp.free.biblefy.your.screen" />
</intent-filter>
</receiver>
<!-- This is required for persisting preferences related to push and location -->
<provider
android:name="com.urbanairship.UrbanAirshipProvider"
android:authorities="rkp.free.biblefy.your.screen.urbanairship.provider"
android:exported="true"
android:multiprocess="true"
android:permission="rkp.free.biblefy.your.screen.permission.UA_DATA" />
<receiver
android:name="com.calldorado.android.actionreceiver.ActionReceiver"
android:enabled="true" >
<intent-filter android:priority="100" >
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
<action android:name="com.calldorado.android.intent.SEND_RATING_REQ" />
<action android:name="com.calldorado.android.intent.SEARCH" />
<action android:name="com.calldorado.android.intent.INITSDK" />
<action android:name="com.calldorado.android.intent.COMM_END" />
<action android:name="com.calldorado.android.intent.WIC_POSITION" />
<action android:name="com.calldorado.android.intent.MAKE_CALL" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="com.calldorado.android.intent.TRIGGER_SEND" />
<action android:name="com.calldorado.android.intent.PACEMAKER" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="com.calldorado.android.intent.DYNAMIC_RE_ENGAGEMENT" />
<action android:name="com.calldorado.android.intent.PRIORITY" />
<action android:name="com.calldorado.android.intent.HEARTBEAT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<receiver
android:name="com.calldorado.analytics.CalldoradoStatsReceiver"
android:enabled="true"
android:exported="true" >
</receiver>
<activity
android:name="com.calldorado.android.ui.ResultActivity"
android:screenOrientation="portrait"
android:taskAffinity=""
android:theme="#android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.calldorado.android.ui.AfterCallActivity"
android:screenOrientation="portrait"
android:taskAffinity=""
android:theme="#android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.calldorado.android.ui.SettingsActivity"
android:screenOrientation="portrait"
android:taskAffinity=""
android:theme="#android:style/Theme.Translucent.NoTitleBar" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW" />
<data android:scheme="rkp.free.biblefy.your.screen.settingsactivity" />
</intent-filter>
</activity>
<service android:name="com.calldorado.android.service.CalldoradoCommunicationService" />
<service android:name="com.calldorado.android.ad.BannerLoadingService" />
<service android:name="com.calldorado.android.GoogleSyncService" />
<service android:name="com.calldorado.analytics.CalldoradoStatsCommunicationService" />
<meta-data
android:name="com.calldorado.AccountId"
android:value="a1-dfa69600-4598-49fb-9db9-26ce8053a220" />
<meta-data
android:name="com.calldorado.AppId"
android:value="b0-ccc4d694-7994-426a-84eb-ab11103bbf8c" />
</application>
Please help me with the ua_activity_landing_page layout code, since i don't have so much knowledge of android and specially of eclipse android !!!
Not sure what SDK version you are trying to use but the problem is missing resources. You can go ahead and remove the metadata entry in the manifest:
<meta-data
android:name="com.urbanairship.action.LANDING_PAGE_VIEW"
android:resource="#layout/ua_activity_landing_page" />
The landing page activity will fallback to generating a layout programatically.
This seems like a bigger issue with your set up. It seems resources are unavailable in your project, so your project is probably not set up properly for Urban Airship. Make sure its set up as a resource android library project. Eclipse is no longer supported so I would strongly recommend converting the project to use Android Studio.

Why the APK is not stored in my phone after i run the application?

I have two android projects. one of the projects i run the app in the android studio through usb on my smartphone, and one project it saves the APK on the smartphone, while in the second project it does not saves the APK on the smartphone.
what can i do to solve this, because im using google cloud messaging and when the APK is not install in the smartphone it cant get notifications.
for example
in this picture
you can see the application "GCMTest" stored in the smartphone
but in the other project it does not store the APK
how can i solve this?
The Manifest of the project that does not install the APK in smartphone
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.world.bolandian.watchme"
android:installLocation="preferExternal">
<!-- To access Google+ APIs: -->
<uses-permission android:name="android.permission.INTERNET" />
<!--
To retrieve OAuth 2.0 tokens or invalidate tokens to disconnect a user. This disconnect
option is required to comply with the Google+ Sign-In developer policies
-->
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<!-- To retrieve the account name (email) as part of sign-in: -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<!-- [START gcm_permission] -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission
android:name="com.world.bolandian.watchme.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.world.bolandian.watchme.permission.C2D_MESSAGE" />
<!-- [END gcm_permission] -->
<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="com.world.bolandian.watchme.MainActivity" />
<category android:name="android.intent.category.default" />
</intent-filter>
</activity>
<!--
<activity
android:name="."
android:label="#string/title_activity_register" >
<intent-filter>
<action android:name="com.world.bolandian.watchme.Register" />
<category android:name="android.intent.category.default" />
</intent-filter>
</activity>
-->
<activity
android:name=".Login"
android:label="#string/title_activity_login"
android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<action android:name="com.world.bolandian.watchme.Login" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION"></action>
<category android:name="com.world.bolandian.watchme" />
</intent-filter>
</receiver>
<service
android:name=".MyGcmListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service
android:name=".MyInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
<service
android:name=".RegistrationIntentService"
android:exported="false"></service>
<meta-data
android:name="com.google.android.gms.wallet.api.enabled"
android:value="true"/>
</application>
Manifest of the second project that install the APK in the smartphone
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.world.bolandian.gcmtest">
<!-- To access Google+ APIs: -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<!-- To retrieve the account name (email) as part of sign-in: -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<!-- [START gcm_permission] -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission android:name="com.world.bolandian.gcmtest.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.world.bolandian.gcmtest.permission.C2D_MESSAGE" />
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.world.bolandian.gcmtest" />
</intent-filter>
</receiver>
<service
android:name=".MyGcmListenerService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service
android:name=".MyInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
<service
android:name=".RegistrationIntentService"
android:exported="false"></service>
</application>
</manifest>

Categories

Resources