Google play console no longer tests app on most devices - google-play-console

Since updating my android studio on the 15th of January 2019 the google play console is no longer testing my app on any devices other than the P8 Lite Huawei. All the other devices state "This device could not be tested at this time, please upload a new APK".
I cannot find any information anywhere as to why this is occurring. Is it due to Google no longer supporting tests on those devices? Or is it a change made to my code with the update?
I have included my gradle code in case it's due to an SDK conflict or something but frankly, I'm stumped.
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.frozencodegame.evolution"
minSdkVersion 21
targetSdkVersion 28
versionCode 27
versionName "0.0027"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
aaptOptions {
cruncherEnabled = false
}
Apologies, I have now included my manifest too:
<?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.frozencodegame.evolution">
<application
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:screenOrientation="portrait"
android:supportsRtl="true"
android:theme="#style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
<activity
android:name=".pages.pageSplice"
android:theme="#style/AppTheme.transparentTheme"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name=".pages.pageBreed"
android:theme="#style/AppTheme.transparentTheme"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name=".MainActivity"
android:windowSoftInputMode="adjustNothing">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".pages.pageSettings"
android:theme="#style/AppTheme.transparentTheme" />
<activity
android:name=".pages.pageCreature"
android:theme="#style/AppTheme.transparentTheme"
android:windowSoftInputMode="adjustNothing" />
</application>

You can see what devices your app in compatible with by using the Play Console (help docs)
Sign in to your Play Console.
Select an app.
On the left menu, click Release management > Device catalogue.
If you haven't already, review and accept the Terms of Service.
Select the All, Supported or Excluded tabs.
If you want to download a list of devices as a CSV file, near the right side of the page, click Download device list.
Other devices are not being stopped by Google in general. If you need more help from stackoverflow users, then the problem is usually caused by the app manifest. You may need to add your AndroidManifest.xml to your question.

Related

.Net Maui unable to deploy on Android Emulator Using Visual Studio for Mac Preview 17.4

I'm building a cross platform line of business app on .Net Maui. Everything was working (mostly) fine(ish) until today when I updated the .net core sdk from version 6.0.400-preview.22330.6 to 6.0.400. To my knowledge that is the only thing I have changed.
Now any time I attempt to debug the app, the build succeeds however VS for Mac displays an error message after "Deploying to Device". The Error message is: "Cannot execute "Users/xxxx/src/Mobile/bin/Debug/net6.0-android/Mobile.dll
I can't tell what is causing it. It appears like the all the steps succeed in the "Deploying to Device" window. Zero Errors and Zero warnings.
I have noticed that most of the targets are skipped because "all output files are up-to-date with respect to the input files". Thusly, I have cleaned both from the command line and in VS for Mac with no luck.
Finally, I can run the application in the emulator if I use the command:
dotnet build -t:Run -f:net6.0-android
UPDATE:
I pulled up the VS for Mac Logs and found this:
ERROR [2022-08-15 15:48:19Z]: Error loading android manifest '/Users/xxxx/src/Mobile/obj/Debug/net6.0-android/android/AndroidManifest.xml'
System.ArgumentNullException: Value cannot be null. (Parameter 'versions')
at Xamarin.Android.Tools.AndroidAppManifest.Load(String filename, AndroidVersions versions) in /Users/runner/work/1/s/MonoDevelop.MonoDroid/external/androidtools/external/xamarin-android-tools/src/Xamarin.Android.Tools.AndroidSdk/AndroidAppManifest.cs:line 84
at MonoDevelop.MonoDroid.ProjectSystem.AndroidApplicationManifest..ctor(String manifestFile, AndroidProjectProperties projectProperties) in /Users/runner/work/1/s/MonoDevelop.MonoDroid/MonoDevelop.MonoDroid/ProjectSystem/PropertiesProviders/AndroidApplicationManifest.cs:line 13
at MonoDevelop.MonoDroid.ProjectSystem.AndroidManifestCache.CreateNewManifest(String filename) in /Users/runner/work/1/s/MonoDevelop.MonoDroid/MonoDevelop.MonoDroid/ProjectSystem/PropertiesProviders/AndroidManifestCache.cs:line 33
INFO [2022-08-15 15:48:19Z]: Add-in loaded: DotNetCore.Debugger
INFO [2022-08-15 15:48:19Z]: Add-in loaded: MonoDevelop.Debugger.Soft.AspNet
ERROR [2022-08-15 15:48:19Z]: Cannot execute "/Users/xxxx/src/Mobile/bin/Debug/net6.0-android/Mobile.dll"
So for some reason it appears to be linked to the android manifest not being available in the obj folder. I did check the folder and the manifest is indeed in that location. However, I'm not certain if its a race condition or something that makes the file not there at the time the tooling attempts to load the manifest.
UPDATE 2:
I created a new app just to see if there was something wrong with my current app. Same issue. As requested here is the app manifest located in the obj/Debug/net6.0-android folder of the project. I'm not certain this matters or not, but there is not an app manifest in the bin/Debug/net6.0-android folder.
<?xml version="1.0" encoding="utf-8"?>
<!--
This code was generated by a tool.
It was generated from /Users/xxxx/src/NewTest/Platforms/Android/AndroidManifest.xml
Changes to this file may cause incorrect behavior and will be lost if
the contents are regenerated.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" package="com.companyname.newtest" android:versionName="1.0">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="31" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:allowBackup="true" android:icon="#mipmap/appicon" android:roundIcon="#mipmap/appicon_round" android:supportsRtl="true" android:name="crc64035c0982af6367fe.MainApplication" android:label="NewTest" android:debuggable="true" android:extractNativeLibs="true">
<activity android:configChanges="density|orientation|smallestScreenSize|screenLayout|screenSize|uiMode" android:theme="#style/Maui.SplashTheme" android:name="crc64035c0982af6367fe.MainActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:configChanges="orientation|screenSize" android:exported="true" android:name="crc6468b6408a11370c2f.WebAuthenticatorIntermediateActivity" />
<provider android:authorities="com.companyname.newtest.fileProvider" android:exported="false" android:grantUriPermissions="true" android:name="microsoft.maui.essentials.fileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="#xml/microsoft_maui_essentials_fileprovider_file_paths" />
</provider>
<receiver android:enabled="true" android:exported="false" android:label="Essentials Connectivity Broadcast Receiver" android:name="crc64e53d2f592022988e.ConnectivityBroadcastReceiver" />
<activity android:configChanges="orientation|screenSize" android:exported="true" android:name="crc64ba438d8f48cf7e75.IntermediateActivity" />
<receiver android:enabled="true" android:exported="false" android:label="Essentials Battery Broadcast Receiver" android:name="crc640a8d9a12ddbf2cf2.BatteryBroadcastReceiver" />
<receiver android:enabled="true" android:exported="false" android:label="Essentials Energy Saver Broadcast Receiver" android:name="crc640a8d9a12ddbf2cf2.EnergySaverBroadcastReceiver" />
<service android:name="crc64396a3fe5f8138e3f.KeepAliveService" />
<provider android:name="mono.MonoRuntimeProvider" android:exported="false" android:initOrder="1999999999" android:authorities="com.companyname.newtest.mono.MonoRuntimeProvider.__mono_init__" />
</application>
</manifest>
Here is the original app manifest file located in the Platforms/Android directory of the project (the one visible in the solution explorer)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:allowBackup="true" android:icon="#mipmap/appicon" android:roundIcon="#mipmap/appicon_round" android:supportsRtl="true"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
UPDATE 3:
I just unpacked the signed app file from the Bin folder and got the contents out of that app manifest.
<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="31" android:compileSdkVersionCodename="12" package="com.companyname.newtest" platformBuildVersionCode="31" platformBuildVersionName="12">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application android:allowBackup="true" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:debuggable="true" android:extractNativeLibs="true" android:icon="#mipmap/appicon" android:label="NewTest" android:name="crc64035c0982af6367fe.MainApplication" android:roundIcon="#mipmap/appicon_round" android:supportsRtl="true">
<activity android:configChanges="density|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:exported="true" android:name="crc64035c0982af6367fe.MainActivity" android:theme="#style/Maui.SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:configChanges="orientation|screenSize" android:exported="true" android:name="crc6468b6408a11370c2f.WebAuthenticatorIntermediateActivity"/>
<provider android:authorities="com.companyname.newtest.fileProvider" android:exported="false" android:grantUriPermissions="true" android:name="microsoft.maui.essentials.fileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="#xml/microsoft_maui_essentials_fileprovider_file_paths"/>
</provider>
<receiver android:enabled="true" android:exported="false" android:label="Essentials Connectivity Broadcast Receiver" android:name="crc64e53d2f592022988e.ConnectivityBroadcastReceiver"/>
<activity android:configChanges="orientation|screenSize" android:exported="true" android:name="crc64ba438d8f48cf7e75.IntermediateActivity"/>
<receiver android:enabled="true" android:exported="false" android:label="Essentials Battery Broadcast Receiver" android:name="crc640a8d9a12ddbf2cf2.BatteryBroadcastReceiver"/>
<receiver android:enabled="true" android:exported="false" android:label="Essentials Energy Saver Broadcast Receiver" android:name="crc640a8d9a12ddbf2cf2.EnergySaverBroadcastReceiver"/>
<service android:name="crc64396a3fe5f8138e3f.KeepAliveService"/>
<provider android:authorities="com.companyname.newtest.mono.MonoRuntimeProvider.__mono_init__" android:exported="false" android:initOrder="1999999999" android:name="mono.MonoRuntimeProvider"/>
<provider android:authorities="com.companyname.newtest.androidx-startup" android:exported="false" android:name="androidx.startup.InitializationProvider">
<meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer" android:value="androidx.startup"/>
<meta-data android:name="androidx.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup"/>
</provider>
<uses-library android:name="androidx.window.extensions" android:required="false"/>
<uses-library android:name="androidx.window.sidecar" android:required="false"/>
</application>
</manifest>

Didn't find class "com.onesignal.GcmBroadcastReceiver" on path: DexPathList

I'm new to Xamarin and trying to get OneSignal push notifications working in Android. When running the emulator and I fire a push notification from OneSignal, it comes through successfully on the emulator. However, when I deploy the app via Play Store, and I have the app open, firing a push notification crashes the app with the following error:
java.lang.RuntimeException: Unable to instantiate receiver com.onesignal.GcmBroadcastReceiver: java.lang.ClassNotFoundException: Didn't find class "com.onesignal.GcmBroadcastReceiver" on path: DexPathList[[zip file "/data/app/com.woodfordgroup.whybuycars-Bl5_t81uXklo5mpGZRvJcw==/base.apk"],nativeLibraryDirectories=[/data/app/com.woodfordgroup.whybuycars-Bl5_t81uXklo5mpGZRvJcw==/lib/arm64, /data/app/com.woodfordgroup.whybuycars-Bl5_t81uXklo5mpGZRvJcw==/base.apk!/lib/arm64-v8a, /system/lib64]]
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3432)
at android.app.ActivityThread.access$1400(ActivityThread.java:207)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1712)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6831)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:927)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.onesignal.GcmBroadcastReceiver" on path: DexPathList[[zip file "/data/app/com.woodfordgroup.whybuycars-Bl5_t81uXklo5mpGZRvJcw==/base.apk"],nativeLibraryDirectories=[/data/app/com.woodfordgroup.whybuycars-Bl5_t81uXklo5mpGZRvJcw==/lib/arm64, /data/app/com.woodfordgroup.whybuycars-Bl5_t81uXklo5mpGZRvJcw==/base.apk!/lib/arm64-v8a, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:171)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.AppComponentFactory.instantiateReceiver(AppComponentFactory.java:84)
at androidx.core.app.CoreComponentFactory.instantiateReceiver(Unknown Source:0)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3425)
... 8 more
Is this because the OneSignal library is not being included in the release? I've also seen mention of AndroidX or multi-dex issues. Here is the android manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="15" android:versionName="1.0" package="com.woodfordgroup.whybuycars" android:installLocation="auto">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
<application android:label="WhyBuyCars" android:theme="#style/MainTheme" android:icon="#drawable/whybuycars_icon_512x512">
<provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="#xml/file_paths" />
</provider>
<receiver android:name="com.onesignal.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.woodfordgroup.whybuycars" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android-name="android.hardware.camera" android:required="false" android:glEsVersion="0x00030002" />
<permission android:name="com.woodfordgroup.whybuycars.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.woodfordgroup.whybuycars.permission.C2D_MESSAGE" />
</manifest>
And here are my android project properties (target version is 29):
I also wonder if something went wrong with the inclusion of various libraries while I was installing OneSignal from Nuget. Here is my list of project references:
Add this to the proguard file.
-keep class com.onesignal.** { *; }
Source: See oncky's comment on question.
I had exactly the same issue, I could receive notifications without crash if disabled R8 code shrinker in settings ( or adding <AndroidR8ExtraArguments>--no-tree-shaking</AndroidR8ExtraArguments> after the <AndroidLinkTool>r8</AndroidLinkTool> in android .csproject file).
It seems there's some issue with shrinker for onesignal broadcast receiver class

phonegap build for kitkat

I have made a phonegap app which works on all other devices except my tablet which runs KitKat(the app installs but displays a blank white screen instead of the content). I checked to see if this was an issue with it being a tablet but it seems to be the android version as the exact same app build works on another tablet running android lollipop...
This is the code in my config file, is there something else I need to add or something I should remove so that it will run correctly on the KitKat tablet?
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.phonegap.helloworld"
version="1.0.0"
xmlns = "http://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
xmlns:android = "http://schemas.android.com/apk/res/android">
<config-file platform="android" parent="/manifest" mode="merge">
<supports-screens
android:xlargeScreens="true"
android:largeScreens="true"
android:smallScreens="true"
android:requiresSmallestWidthDp="600"
/>
<uses-sdk android:minSdkVersion="19"
android:targetSdkVersion="19"/>
</config-file>
<name>My App</name>
<description>
Tablet App.
</description>
<content src="index.html"/>
<preference name="target-device" value="universal" />
<preference name="android-minSdkVersion" value="19" />
<preference name="android-targetSdkVersion" value="19"/>
<preference name="orientation" value="landscape" />
<access origin="*"/>
</widget>
I am not using an plugins, and am using build.phonegap to build my app.
Thanks in advance
I managed to get the google chrome remote device debugger working and it was an error in my code: I had used let instead of var and KitKat does not recognize let.
I changed all my let declarations to var and now it works perfectly.

Windows 10 IOT Foundation namespace is missing IOT

We are trying to add iot capabilities to our Package.appxmanifest for a cordova project. Visual studio complains that the capability we are trying to use cannot be found nor is it a child of the foundation name space.
The underlined iot:Capability shows the following when hovered over:
The element 'BackgroundTasks' in namespace 'http://schemas.microsoft.com/appx/manifest/foundation/winows10' has invalid child element 'Capabilities' in namespace 'http://schemas.microsoft.com/appx/manifest/iot/windows10'. List of possible elements expected: '...
The thing is I created this as a new project and let vs do all the work yet it cannot resolve it's own entries it's creating. We see this with both a new C# and JS project that VS generated. Can anyone help us? (Yes we added the references "Windows IoT Extensions for the UWP" 10.0.10586.0 to the project as well.). FYI We get the same error when adding as well.
Here's the package.appxmanifest:
<?xml version='1.0' encoding='utf-8'?>
<Package IgnorableNamespaces="uap mp iot" xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:iot="http://schemas.microsoft.com/appx/manifest/iot/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10">
<Identity Name="com.project.syndication.sitepad" Publisher="CN=$username$" Version="2.0.0.0" />
<mp:PhoneIdentity PhoneProductId="a885d1d0-453e-11e6-a59d-550bfa336405" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
<Properties>
<DisplayName>SitePad App</DisplayName>
<PublisherDisplayName>ERT</PublisherDisplayName>
<Logo>images\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily MaxVersionTested="10.0.10586.0" MinVersion="10.0.10586.0" Name="Windows.Universal" />
</Dependencies>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="com.project.syndication.sitepad" StartPage="ms-appx-web:///www/index.html">
<uap:VisualElements BackgroundColor="#464646" Description="CordovaApp" DisplayName="SitePad App" Square150x150Logo="images\Square150x150Logo.png" Square44x44Logo="images\Square44x44Logo.png">
<uap:SplashScreen Image="images\splashscreen.png" />
<uap:DefaultTile ShortName="SitePad App" Square310x310Logo="images\Square310x310Logo.png" Square71x71Logo="images\Square71x71Logo.png" Wide310x150Logo="images\Wide310x150Logo.png" />
</uap:VisualElements>
<uap:ApplicationContentUriRules>
<uap:Rule Match="ms-appx-web:///" Type="include" WindowsRuntimeAccess="all" />
</uap:ApplicationContentUriRules>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClient" />
<uap:Capability Name="picturesLibrary" />
<iot:Capability Name="systemManagement" />
</Capabilities>
</Package>
The hovering error looks like a bug with something(VS?), I'm seeing it multiple times, yet my code still compiles and runs OK.
No worries on this.

AdMob - You must have AdActivity declared in AndroidManifest.xml with configChanges

I am trying to get admob to work in my Xamarin Android application but I get the following message when trying to display an add:
"You must have AdActivity declared in AndroidManifest.xml with configChanges"
I ave added the Xamarin google play service to my application.
I am set the java heap size to 1G and build with API level 14
I have googled the error message and most answerspoint to the manifest file that needs to include two entries. I have added the entries but still have the problem.
Any idea what I am doing wrong? Here is my Manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:installLocation="auto" android:versionName="1.0">
<uses-sdk />
<application android:label="Aftermath">
<meta-data android:name="com.google.android.gms.version" android:value="#integer/google_play_services_version" />
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
</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" />
</manifest>
Thanks

Resources