My AndroidManifest.xml
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="10300" android:versionName="1.3.0" package="com.appname.android" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:hardwareAccelerated="true" android:icon="#mipmap/ic_launcher" android:label="#string/app_name" android:supportsRtl="true">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" android:exported="true" android:label="#string/activity_name" android:launchMode="singleTask" android:name="MainActivity" android:theme="#style/Theme.App.SplashScreen" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="#string/launcher_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="MeeBuddy" />
</intent-filter>
<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:host="meebuddy.com" android:pathPrefix="/" android:scheme="https" />
<data android:host=" " android:pathPrefix="/" android:scheme=" " />
<data android:host=" " android:pathPrefix="/" android:scheme=" " />
<data android:host=" " android:pathPrefix="/" android:scheme=" " />
<data android:host=" " android:pathPrefix="/" android:scheme=" " />
</intent-filter>
</activity>
<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:exported="true" android:name="com.google.android.gms.ads.AdActivity" android:theme="#android:style/Theme.Translucent" tools:replace="android:exported" />
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-6001377970808084~7678097359" />
<provider android:authorities="${applicationId}.cordova.plugin.camera.provider" android:exported="false" android:grantUriPermissions="true" android:name="org.apache.cordova.camera.FileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="#xml/camera_provider_paths" />
</provider>
<activity android:exported="true" android:name="com.soundcloud.android.crop.CropImageActivity" />
<receiver android:enabled="true" android:exported="true" android:name="nl.xservices.plugins.ShareChooserPendingIntent">
<intent-filter>
<action android:name="android.intent.action.SEND" />
</intent-filter>
</receiver>
<provider android:authorities="${applicationId}.sharing.provider" android:exported="false" android:grantUriPermissions="true" android:name="nl.xservices.plugins.FileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="#xml/sharing_paths" />
</provider>
<amazon:enable-feature android:name="com.amazon.device.messaging" android:required="false" xmlns:amazon="http://schemas.amazon.com/apk/res/android" />
<service android:exported="false" android:name="com.onesignal.ADMMessageHandler" />
<receiver android:exported="true" android:name="com.onesignal.ADMMessageHandler$Receiver" android:permission="com.amazon.device.messaging.permission.SEND">
<intent-filter>
<action android:name="com.amazon.device.messaging.intent.REGISTRATION" />
<action android:name="com.amazon.device.messaging.intent.RECEIVE" />
<category android:name="com.meebuddy.android" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<queries>
<intent>
<action android:name="android.media.action.IMAGE_CAPTURE" />
</intent>
<intent>
<action android:name="android.intent.action.GET_CONTENT" />
</intent>
<intent>
<action android:name="android.intent.action.PICK" />
</intent>
<intent>
<action android:name="com.android.camera.action.CROP" />
<data android:mimeType="image/*" android:scheme="content" />
</intent>
</queries>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" android:required="true" />
<uses-permission android:name="com.amazon.device.messaging.permission.RECEIVE" />
<permission android:name="com.meebuddy.android.permission.RECEIVE_ADM_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.meebuddy.android.permission.RECEIVE_ADM_MESSAGE" />
</manifest>
APK Generated Successfully but Google playstore giving following error
**You uploaded an APK or Android App Bundle which has an activity, activity alias, service or broadcast receiver with intent filter, but without 'android:exported' property set. This file can't be installed on Android 12 or higher. See: developer.android.com/about/versions/12/behavior-changes-12#exported
**
How to resolve this issue?
I have had an issue for weeks after upgrading to the latest VS2019 and XF versions. Along the way, I have moved from VS 16.3.2 to .5 with no fix. It displays "Unexpected Element found in - AndroidManifest.xml - Line 14. I have also updated many of the NuGet packages and performed clean/build many times. Any ideas?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.linkemupllc.NYWineryHopper" android:installLocation="auto" android:versionName="release-2.01.02" android:versionCode="20102">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.LOCATION_HARDWARE" />
<supports-screens android:largeScreens="true" android:xlargeScreens="true" />
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="#android:style/Theme.Translucent" />
<application android:label="NYWineryHopper.Android" android:icon="#drawable/icon" android:name="android.support.multidex.MultiDexApplication" android:allowBackup="true" android:debuggable="true">
<activity android:icon="#mipmap/icon" android:label="NYWineryHopper" android:screenOrientation="portrait" android:theme="#style/MainTheme" android:name="md5c4b3563624aac5beb34a83ad25365fc4.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="md5dcb6eccdc824e0677ffae8ccdde42930.KeepAliveService" />
<receiver android:enabled="true" android:exported="false" android:label="Essentials Battery Broadcast Receiver" android:name="md5d630c3d3bfb5f5558520331566132d97.BatteryBroadcastReceiver" />
<receiver android:enabled="true" android:exported="false" android:label="Essentials Energy Saver Broadcast Receiver" android:name="md5d630c3d3bfb5f5558520331566132d97.EnergySaverBroadcastReceiver" />
<receiver android:enabled="true" android:exported="false" android:label="Essentials Connectivity Broadcast Receiver" android:name="md5d630c3d3bfb5f5558520331566132d97.ConnectivityBroadcastReceiver" />
<provider android:authorities="com.linkemupllc.NYWineryHopper.fileProvider" android:exported="false" android:grantUriPermissions="true" android:name="xamarin.essentials.fileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="#xml/xamarin_essentials_fileprovider_file_paths" />
</provider>
<receiver android:enabled="true" android:exported="false" android:name="md51558244f76c53b6aeda52c8a337f2c37.PowerSaveModeBroadcastReceiver" />
<provider android:name="mono.android.MultiDexLoader" android:exported="false" android:initOrder="1999999999" android:authorities="com.linkemupllc.NYWineryHopper.mono.android.MultiDexLoader.__mono_init__" />
<provider android:name="mono.MonoRuntimeProvider" android:exported="false" android:initOrder="1999999998" android:authorities="com.linkemupllc.NYWineryHopper.mono.MonoRuntimeProvider.__mono_init__" />
<!--suppress ExportedReceiver-->
<receiver android:name="mono.android.Seppuku">
<intent-filter>
<action android:name="mono.android.intent.action.SEPPUKU" />
<category android:name="mono.android.intent.category.SEPPUKU.com.linkemupllc.NYWineryHopper" />
</intent-filter>
</receiver>
<!-- 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.linkemupllc.NYWineryHopper.mobileadsinitprovider" android:exported="false" android:initOrder="100" />
<meta-data android:name="com.google.android.gms.version" android:value="#integer/google_play_services_version" />
</application>
<uses-permission android:name="android.permission.WAKE_LOCK" />
</manifest>
he created a Consent resource profile through forge, with a test extension that only contains a String value.
When I try to validate the Consent resource, it gives me this error, but I do not know what it means.
Profile:
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="Consent" />
<meta>
<lastUpdated value="2017-12-21T17:22:27.087+01:00" />
</meta>
<url value="http://hl7.org/fhir/StructureDefinition/MyConsent" />
<name value="Consent" />
<status value="draft" />
<date value="2017-12-19T09:08:41.006+01:00" />
<description value="prueba
" />
<fhirVersion value="3.0.1" />
<kind value="resource" />
<abstract value="false" />
<type value="Consent" />
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Consent" />
<derivation value="constraint" />
<differential>
<element id="Consent.extension">
<path value="Consent.extension" />
<slicing>
<discriminator>
<type value="value" />
<path value="url" />
</discriminator>
<rules value="open" />
</slicing>
</element>
<element id="Consent.extension:pruebaExtension">
<path value="Consent.extension" />
<sliceName value="pruebaExtension" />
<min value="1" />
<type>
<code value="Extension" />
<profile value="http://hl7.org/fhir/StructureDefinition/PruebaExtension" />
</type>
</element>
<element id="Consent.identifier">
<path value="Consent.identifier" />
<min value="1" />
</element>
</differential>
</StructureDefinition>
Thanks
I am using phonegap-version cli-5.2.0 i could not build apk. error is here below
Error - The following plugin, plugin version or a dependancy of this plugin is not on npm: Device
my config.xml
this is my config file my plugins are given below
org.apache.cordova.core.geolocation,Device,Logger,Compass,NetworkStatus,Debug Console,Geolocation,SplashScreen,Battery,Globalization
<?xml version="1.1" encoding="utf-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" id = "com.test.www" version="1.1" >
<name>test</name>
<description>
test
</description>
<preference name="permissions" value="none"/>
<gap:plugin name="org.apache.cordova.core.geolocation" />
<feature name="Geolocation">
<param name="ios-package" value="CDVLocation" />
</feature>
<plugins>
<plugin name="Device" value="CDVDevice" />
<plugin name="Logger" value="CDVLogger" />
<plugin name="Compass" value="CDVLocation" />
<plugin name="NetworkStatus" value="CDVConnection" />
<plugin name="Debug Console" value="CDVDebugConsole" />
<plugin name="Geolocation" value="CDVLocation" />
<plugin name="SplashScreen" value="CDVSplashScreen" />
<plugin name="Battery" value="CDVBattery" />
<plugin name="Globalization" value="CDVGlobalization" />
</plugins>
<preference name="phonegap-version" value="cli-5.2.0" />
<!--<preference name="android-windowSoftInputMode" value="adjustPan" />-->
<preference name="android-windowSoftInputMode" value="adjustResize" />
<icon src="images/ldpi.png" gap:platform="android" gap:density="ldpi" />
<icon src="images/mdpi.png" gap:platform="android" gap:density="mdpi" />
<icon src="images/hdpi.png" gap:platform="android" gap:density="hdpi" />
<icon src="images/xhdpi.png" gap:platform="android" gap:density="xhdpi" />
<!-- iPhone icons -->
<icon src="images/57.png" gap:platform="ios" width="57" height="57" />
<icon src="images/114.png" gap:platform="ios" width="114" height="114" />
<icon src="images/72.png" gap:platform="ios" width="72" height="72" />
<icon src="images/76.png" gap:platform="ios" width="76" height="76" />
<icon src="images/120.png" gap:platform="ios" width="120" height="120" />
<icon src="images/152.png" gap:platform="ios" width="152" height="152" />
<!-- Android splashes -->
<gap:splash src="images/sldpi.png" gap:platform="android" gap:density="ldpi" />
<gap:splash src="images/smdpi.png" gap:platform="android" gap:density="mdpi" />
<gap:splash src="images/shdpi.png" gap:platform="android" gap:density="hdpi" />
<gap:splash src="images/sxhdpi.png" gap:platform="android" gap:density="xhdpi" />
<!-- iPhone splashes -->
<gap:splash src="images/320x480.png" gap:platform="ios" width="320" height="480" />
<gap:splash src="images/640x960.png" gap:platform="ios" width="640" height="960" />
<gap:splash src="images/640x1136.png" gap:platform="ios" width="640" height="1136" />
<gap:plugin name="com.devexpress.plugins.devextremeaddon" version="1.0.1" />
<gap:plugin name="com.phonegap.plugin.statusbar" version="1.1.0" />
<gap:plugin name="org.apache.cordova.splashscreen" version="0.3.4" />
<gap:plugin name="org.li8.inappbrowser" version="0.1" />
<gap:plugin name="org.apache.cordova.network-information" version="0.2.12" />
<gap:plugin name="com.danielcwilson.plugins.googleanalytics" version="0.6.1" />
<gap:plugin name="nl.x-services.plugins.socialsharing" version="3.8.1" />
<preference name="SplashScreen" value="foo" />
<preference name="SplashScreenDelay" value="8000" />
<access origin="*" />
</widget>
Okay, I've fixed up your config.xml, but you likely have errors in your index.html also. I would suggest you post that as well.
Also, i removed the icons, plugins, preferences, and more, because you can always add those back. This example gets you working.
You should read the Phonegap Build blog for the last 60 days or so, and there are more changes coming in the next 30 days. If you get a chance skim through the Cordova blog as well.
You should also skim this: Top Mistakes by Developers new to Cordova/Phonegap
AND READ these
HOW TO apply the Cordova/Phonegap the whitelist system
Core Plugins Setup
Glossary - deprecated means - considered old, and planned to be phased out, but still available for use.
Your Fixes
NOTE YOUR APP IS NOW INSECURE. IT IS UP TO YOU TO SECURE YOUR APP.
Read: HOW TO apply the Cordova/Phonegap the whitelist system
<?xml version="1.1" encoding="utf-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" id = "com.appbogoo.www" version="1.1" >
<name>BOGOO</name>
<description>
BOGOO
</description>
<preference name="phonegap-version" value="cli-5.2.0" />
<plugin name="cordova-plugin-geolocation" source="npm" spec="1.0.1" />
<plugin name="cordova-plugin-inappbrowser" source="npm" spec="1.0.1" />
<plugin name="cordova-plugin-network-information" source="npm" spec="1.0.1" />
<plugin name="cordova-plugin-splashscreen" source="npm" spec="2.1.0" />
<plugin name="cordova-plugin-statusbar" source="npm" spec="1.0.0" />
<!-- No longer available -->
<!-- <gap:plugin name="com.devexpress.plugins.devextremeaddon" version="1.0.1" /> -->
<!-- Deprecated -->
<!-- <gap:plugin name="com.danielcwilson.plugins.googleanalytics" version="0.6.1" /> -->
<plugin name="cordova-plugin-google-analytics source="npm" spec="0.8.1" />
<!-- Deprecated -->
<!-- <gap:plugin name="nl.x-services.plugins.socialsharing" version="3.8.1" /> -->
<plugin name="cordova-plugin-x-socialsharing source="npm" spec="5.0.7" />
<plugin name="cordova-plugin-whitelist" source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->
</widget>
Change Plugin name and value is the package name of plugin. example:
</description>
<preference name="permissions" value="none"/>
<gap:plugin name="org.apache.cordova.core.geolocation" />
<feature name="Geolocation">
<param name="ios-package" value="CDVLocation" />
</feature>
<plugins>
<plugin name="cordova-plugin-device" value="org.apache.cordova.Device" />
<plugin name="cordova-plugin-network-information" value="CDVConnection" />
<plugin name="Debug Console" value="CDVDebugConsole" />
<plugin name="cordova-plugin-globalization" value="CDVLocation" />
<plugin name="cordova-plugin-splashscreen" value="CDVSplashScreen" />
//etc...
</plugins>
I published my Android application with the below properties of AndroiodManifest.xml.
But I can't see my Android application in Google Play store of Minix or Nuvola 4k media box.
I would appreciate if anyone let me know how I fix it.
<uses-sdk
android:minSdkVersion="12"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SIGNAL_PERSISTENT_PROCESSES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
<compatible-screens>
<!--all normal size screens -->
<screen android:screenSize="normal" android:screenDensity="ldpi" />
<screen android:screenSize="normal" android:screenDensity="mdpi" />
<screen android:screenSize="normal" android:screenDensity="hdpi" />
<screen android:screenSize="normal" android:screenDensity="xhdpi" />
<screen android:screenSize="normal" android:screenDensity="480"/> <!-- xxhdpi -->
<screen android:screenSize="normal" android:screenDensity="640"/> <!-- xxxhdpi -->
<!-- all large size screens -->
<screen android:screenSize="large" android:screenDensity="ldpi" />
<screen android:screenSize="large" android:screenDensity="mdpi" />
<screen android:screenSize="large" android:screenDensity="hdpi" />
<screen android:screenSize="large" android:screenDensity="xhdpi" />
<screen android:screenSize="large" android:screenDensity="480"/> <!-- xxhdpi -->
<screen android:screenSize="large" android:screenDensity="640"/> <!-- xxxhdpi -->
<!-- all xlarge size screens -->
<screen android:screenSize="xlarge" android:screenDensity="ldpi" />
<screen android:screenSize="xlarge" android:screenDensity="mdpi" />
<screen android:screenSize="xlarge" android:screenDensity="hdpi" />
<screen android:screenSize="xlarge" android:screenDensity="xhdpi" />
<screen android:screenSize="xlarge" android:screenDensity="480"/> <!-- xxhdpi -->
<screen android:screenSize="xlarge" android:screenDensity="640"/> <!-- xxxhdpi -->
</compatible-screens>
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="false"
android:smallScreens="false"
android:xlargeScreens="true" />
<uses-feature android:name="android.hardware.telephony" android:required="false"/>
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />