We have developed a .NET MAUI application that uses Azure AD authentication as the app will only be used internally. We use to have a Xamarin Forms application for this but due to the technology stack being old and will deprecated in the future we thought it good to rewrite it now.
I am experiencing issues now with my app on enrolled devices. The Azure AD authentication works fine on my device and devices that have a work profile but not on dedicated devices. Whenever I want to log in the app crashes with no error.
Is there anyone that can assist? Is there something that I am missing specifically for enrolled devices?
I finally got the exception that causes the app to crash.
Microsoft.Identity.Client.MsalClientException: 'The Activity cannot be found to launch the given Intent. To ensure authentication, a browser with custom tab support is recommended. See https://aka.ms/msal-net-system-browsers for more details on using system browser on Android.'
I have added all of the following parts to the Android Manifest file.
<application android:allowBackup="true" android:icon="#mipmap/appicon" android:roundIcon="#mipmap/appicon_round" android:supportsRtl="true" android:usesCleartextTraffic="true">
<activity android:name="microsoft.identity.client.BrowserTabActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="msal4d5a943e-5e1e-4a3b-b891-a8cae0d9e274" android:host="auth" />
</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="msauth" android:host="com.companyname.gobid.qa.AssetPhotos.Maui" android:path="/iWWmgfpHhBWFUgBzKb4n5CEEgm4=" />
</intent-filter>
</activity>
<receiver android:name="crc6479a315bcfb879781.BootReceiver" android:exported="false"/>
<activity android:name="crc6479a315bcfb879781.MainActivity_MsalActivity" android:exported="false"/>
</application>
and
<queries>
<package android:name="com.azure.authenticator" />
<package android:name="com.companyname.gobid.qa.AssetPhotos.Maui" />
<package android:name="com.microsoft.windowsintune.companyportal" />
<package android:name="com.mediatek.camera" />
<intent>
<action android:name="android.media.action.IMAGE_CAPTURE" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent>
<intent>
<action android:name="android.intent.action.MAIN" />
</intent>
<intent>
<action android:name="android.support.customtabs.action.CustomTabsService" />
</intent>
</queries>
but I still get the exception mentioned above.
Related
I am creating an application in Xamarin Android, the problem is my application Takes a lot of time(around two to three minutes) for debugging even in second or plus attempt and even when I don't do any changes. I have enabled fast deployment in android options and set my Linker settings to none and attached a screen shot here for detailed review of my settings.
and here is my androidmanifest.xml file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.companyname.finalproject_pu" android:installLocation="auto" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
<!-- Google Maps for Android v2 requires OpenGL ES v2 -->
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<!-- Permission to receive remote notifications from Google Play Services -->
<!-- Notice here that we have the package name of our application as a prefix on the permissions. -->
<uses-permission android:name="com.companyname.finalproject_pu.permission.MAPS_RECEIVE" />
<permission android:name="com.companyname.finalproject_pu.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
<!-- These are optional, but recommended. They will allow Maps to use the My Location provider. -->
<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-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<application android:name="android.app.Application" android:allowBackup="true" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:debuggable="true" android:extractNativeLibs="true" android:icon="#drawable/appiconfinal" android:label="Problem Update" android:roundIcon="#drawable/appiconfinal" android:supportsRtl="true" android:theme="#style/AppTheme" android:usesCleartextTraffic="true">
<!-- Necessary for apps that target Android 9.0 or higher -->
<uses-library android:name="org.apache.http.legacy" android:required="false" />
<provider android:name="androidx.core.content.FileProvider" android:authorities="com.companyname.finalproject_pu.fileprovider" android:exported="false" android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="#xml/file_paths" />
<meta-data android:name="com.google.android.gms.version" android:value="#integer/google_play_services_version" />
</provider>
<activity android:name="crc64830617e3579ebeb9.CreateIssue" android:label="CreateIssue" />
<activity android:name="crc64830617e3579ebeb9.createissue2" android:label="createissue2" />
<activity android:name="crc64830617e3579ebeb9.createissue3" android:label="createissue3" />
<activity android:name="crc64830617e3579ebeb9.createissue4" android:label="createissue4" />
<activity android:name="crc64830617e3579ebeb9.createissue5" android:label="createissue5" />
<activity android:name="crc64830617e3579ebeb9.createissue6" android:label="createissue6" />
<activity android:name="crc64830617e3579ebeb9.EmailVerifyActivity" android:label="EmailVerifyActivity" />
<activity android:name="crc64830617e3579ebeb9.ForgotPassActivity" android:label="ForgotPassActivity" />
<activity android:name="crc64830617e3579ebeb9.FundsActivity" android:label="FundsActivity" />
<activity android:name="crc64830617e3579ebeb9.LocationActivity" android:label="LocationActivity" />act
<activity android:name="crc64830617e3579ebeb9.LocationsActivity" android:label="LocationsActivity" />
<activity android:name="crc64830617e3579ebeb9.Login" android:label="Login" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="crc64830617e3579ebeb9.MainActivity" android:label="#string/app_name" android:theme="#style/AppTheme" >
</activity>
<activity android:name="crc64830617e3579ebeb9.testActivity" android:label="testActivity">
</activity>
<activity android:name="crc64830617e3579ebeb9.MapActivity" android:label="MapActivity"/>
<activity android:name="crc64830617e3579ebeb9.Newpassword" android:label="Newpassword" />
<activity android:name="crc64830617e3579ebeb9.NotificationsActivity" android:label="NotificationsActivity" />
<activity android:name="crc64830617e3579ebeb9.OTPVerify" android:label="OTPVerify" />
<activity android:name="crc64830617e3579ebeb9.PhotoUploading" android:label="PhotoUploading" />
<activity android:name="crc64830617e3579ebeb9.Register1Activity" android:label="Register1Activity" />
<activity android:name="crc64830617e3579ebeb9.Register2Activity" android:label="Register2Activity" />
<activity android:name="crc64830617e3579ebeb9.Register3Activity" android:label="Register3Activity" />
<activity android:name="crc64830617e3579ebeb9.SettingsActivity" android:label="SettingsActivity" />
<activity android:name="crc644f28929abffd59e1.HomeActivity" android:label="HomeActivity" />
<activity android:name="crc646957603ea1820544.MediaPickerActivity" android:configChanges="orientation|screenSize|uiMode" />
<service android:name="crc64396a3fe5f8138e3f.KeepAliveService" />
<receiver android:name="crc64a0e0a82d0db9a07d.BatteryBroadcastReceiver" android:enabled="true" android:exported="false" android:label="Essentials Battery Broadcast Receiver" />
<receiver android:name="crc64a0e0a82d0db9a07d.EnergySaverBroadcastReceiver" android:enabled="true" android:exported="false" android:label="Essentials Energy Saver Broadcast Receiver" />
<receiver android:name="crc64a0e0a82d0db9a07d.ConnectivityBroadcastReceiver" android:enabled="true" android:exported="false" android:label="Essentials Connectivity Broadcast Receiver" />
<provider android:name="xamarin.essentials.fileProvider" android:authorities="com.companyname.finalproject_pu.fileProvider" android:exported="false" android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="#xml/xamarin_essentials_fileprovider_file_paths" />
</provider>
<provider android:name="mono.MonoRuntimeProvider" android:authorities="com.companyname.finalproject_pu.mono.MonoRuntimeProvider.__mono_init__" android:exported="false" android:initOrder="1999999999" />
<!-- 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.companyname.finalproject_pu" />
</intent-filter>
</receiver>
<activity android:name="com.google.android.gms.common.api.GoogleApiActivity" android:exported="false" android:theme="#android:style/Theme.Translucent.NoTitleBar" />
<meta-data android:name="com.google.android.gms.version" android:value="#integer/google_play_services_version" />
<!-- suppress ExportedReceiver -->
<meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyD8-hqAD2UZX-8VSVoxOpabG2zW1RnmfzE"/>
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver"
android:exported="false" />
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
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="${applicationId}" />
</intent-filter>
</receiver>
<!--FCM RECEIVER ENDS HERE-->
</application>
</manifest>
I am new in Xamarin. I am working on FCM and unable to resolve an issue in manifest.xml regarding applicationId. On build VS automatically replace ${applicationId} with APP ID in the receiver tag. My APP ID contains ':' in it and while building my project i received this error:
Tag category attribute name has invalid character ':'
APP ID: 1:155007225:android:31f4cbf34842713c6f7b
Receiver Code:
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" 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="1:155007225:android:31f4cbf34842713c6f7b" />
</intent-filter>
</receiver>
<activity android:label="#string/app_name" android:theme="#style/AppTheme" android:name="md5a2380a28141411635d1963b62f9f05b7.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="md5a2380a28141411635d1963b62f9f05b7.MyFirebaseIIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<provider android:name="mono.MonoRuntimeProvider" android:exported="false" android:initOrder="2147483647" android:authorities="FCM.FCM.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.FCM.FCM" />
</intent-filter>
</receiver>
If you can see my code has category tag under intent-filter tag
Any help will be appreciated. Thanks
Instead of app id that you get from Firebase, you need to use the Package Name as applicationId, please refer to Set the Package Name
In Firebase Cloud Messaging, you specified a package name for the
FCM-enabled app. This package name also serves as the application ID
that is associated with the API key. Configure the app to use this
package name
update:
Try the following code instead:
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
....
<category android:name="${applicationId}"
</intent-filter>
Please try this code for receiver :
<application android:label="YourAppName">
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" 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="${applicationId}" />
</intent-filter>
</receiver>
</application>
I have finished my first xamarin android mobile app. It all works fine. I have only one problem that I cannot solve and I could not find solution using google.
When I start my app it all works great but when I press home button, open and close few other apps and come back to app it crashes. Also when I open app and go turn off my screen and then I turn it back on and to back to app it creshes.
Besides that all works great and there is no crashes.
This crash is happening both on emulator and on physical device.
The error I get when this happens on emulator is this:
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.name.appname/com.name.android.publish.OverlayActivity}; have you declared this activity in your AndroidManifest.xml?
How to solve this if possible?
Edit:
AndoirdManifest.xml file looks like this:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.name.tournamentorganizer" android:installLocation="auto" android:versionName="1.1" android:versionCode="2">
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="27" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application android:allowBackup="true" android:label="#string/app_name" android:icon="#drawable/icon11" android:name="android.app.Application" android:debuggable="true">
<activity android:label="Create new tournament" android:theme="#android:style/Theme.Material.Light" android:name="md57e31db4bba5ea713128b60ee6f3868c2.createNewTournament" />
<activity android:label="Tournament Organizer" android:theme="#android:style/Theme.Material.Light" android:name="md57e31db4bba5ea713128b60ee6f3868c2.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:label="Add new players" android:theme="#android:style/Theme.Material.Light" android:name="md5a2089f5b800658a06dd2a11fca5a1f83.addNewPlayers" />
<activity android:label="addGoalScorer" android:theme="#android:style/Theme.Material.Light" android:name="md54d075dbf8b437fae408fa9e57e2203ba.addGoalScorer" />
<activity android:label="All fixtures and results" android:theme="#android:style/Theme.Material.Light" android:name="md54d075dbf8b437fae408fa9e57e2203ba.allFixturesAndResults" />
<activity android:label="Players database" android:theme="#android:style/Theme.Material.Light" android:name="md54d075dbf8b437fae408fa9e57e2203ba.allPlayersActivity" />
<activity android:label="knockout4Players" android:name="md54d075dbf8b437fae408fa9e57e2203ba.knockout4Players" />
<activity android:label="League" android:theme="#android:style/Theme.Material.Light" android:name="md54d075dbf8b437fae408fa9e57e2203ba.leagueType" />
<activity android:label="My tournaments" android:theme="#android:style/Theme.Material.Light" android:name="md54d075dbf8b437fae408fa9e57e2203ba.myTournaments" />
<activity android:label="About" android:theme="#android:style/Theme.Material.Light" android:name="md54d075dbf8b437fae408fa9e57e2203ba.settings" />
<activity android:label="Player Info" android:theme="#android:style/Theme.Material.Light" android:name="md54d075dbf8b437fae408fa9e57e2203ba.stats" />
<activity android:label="table" android:theme="#android:style/Theme.Material.Light" android:name="md54d075dbf8b437fae408fa9e57e2203ba.table" />
<activity android:label="Top scorers" android:theme="#android:style/Theme.Material.Light" android:name="md54d075dbf8b437fae408fa9e57e2203ba.topScorerActivity" />
<activity android:label="Winners" android:theme="#android:style/Theme.Material.Light" android:name="md54d075dbf8b437fae408fa9e57e2203ba.winnersActivity" />
<activity android:label="winnersAllTimeActivity" android:theme="#android:style/Theme.Material.Light" android:name="md54d075dbf8b437fae408fa9e57e2203ba.winnersAllTimeActivity" />
<provider android:name="mono.MonoRuntimeProvider" android:exported="false" android:initOrder="2147483647" android:authorities="com.name.tournamentorganizer.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.name.tournamentorganizer" />
</intent-filter>
</receiver>
<meta-data android:name="android.support.VERSION" android:value="25.4.0" />
</application>
</manifest>
Edit2:
I have app version with and without ads. The one without ads does not have this issue. The one with ads does have issue so the ads are problem somehow. I am using startapp ads.
you don't probably use the [Activity] code adornment
[Activity]
internal class YourActivity: Activity {}
If all your activities have
[Activity(Theme = "theme", Label = "name", MainLauncher = true)]
the MainLauncher argument set to true you will run into trouble.
The Activity annotation is used by Xamarin to configure/generate the AndroidManifest.xml
Have you included a MainApplication class, also tagged with the [Application] attribute? Looking at your manifest I am surprised to see the line
<application android:allowBackup="true" android:label="#string/app_name" android:icon="#drawable/icon11" android:name="android.app.Application" android:debuggable="true">
with android:name="android.app.Application". I would expect to see something with an md5 hash (i.e. md5xxx.MainApplication - or whatever the name of your Application class is)
A Clean and Rebuild maybe necessary after changing your application class
I implemented push notifications on my C# Xamarin.Android project like they do it in the official firebase documentation.
It is possible to send notifications with the firebase console. Now I tried to send messages from another C# service. The device monitor says, that the GCM message was delivered.
See Android device monitor messages: http://imgur.com/a/wNOV3
Here's my code. Why could this happen?
AndroidManifest.xml
<application android:label="myApp" android:icon="#drawable/icon">
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" 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 android:name="com.google.firebase.MESSAGING_EVENT"/>
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
<service android:name=".MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
</application>
MyFirebaseMessagingService.cs
[Service]
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
public class MyFirebaseMessagingService : FirebaseMessagingService
{
const string TAG = "MyFirebaseMsgService";
public MyFirebaseMessagingService()
{
Log.Debug(TAG, "Service called");
}
public override void OnMessageReceived(RemoteMessage message)
{
string msg = message.GetNotification().Body;
Log.Debug(TAG, msg);
}
}
I got it work with this manifest configuration
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.xxxxx.xxxx" android:versionName="1.0.0" android:versionCode="2">
<uses-sdk android:minSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application android:icon="#drawable/icon" android:label="XX xXx">
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" 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="${applicationId}" />
</intent-filter>
</receiver>
</application>
</manifest>
I am trying to use Parse in my Unity game in order to implement high scores. My problem is that when I try to put the game on my android device to test it, the name of the app comes up different. It comes up as "ParseUnityPushSample" even though I have not changed anything besides adding the files that Parse gives me to use it. The build settings have not changed and it even shows that my package name is the same, yet testing it on a device has this result.
Testing it in Unity 5 works fine. The game loads as it should. This only happens when I try to put it on a device for testing.
Along with it changing the app name, it also crashes when opening. I get a prompt that says "ParseUnityPushSample" has failed anytime I try to open it on an android device.
EDIT:
Okay so I figured out a way to view some errors that occur when testing on a device. I get this error: "Unable to find unity activity in manifest. You need to make sure orientation attribute is set to sensorLandscape manually.
UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()" I have no idea what the issue is though since I have manually set the orientation for the activity to sensorLandscape in the Android Manifest.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.laserdeflector.sab" android:versionName="1.0.1" android:versionCode="1" android:installLocation="preferExternal">
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="22" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:protectionLevel="signature" android:name="com.laserdeflector.sab.permission.C2D_MESSAGE" />
<uses-permission android:name="com.laserdeflector.sab.permission.C2D_MESSAGE" />
<uses-permission android:name="com.android.vending.BILLING" />
<application android:label="Laser Deflector" android:icon="#drawable/app_icon" android:screenOrientation="sensorLandscape" android:name="com.soomla.SoomlaApp" android:debuggable="false" android:isGame="true">
<activity android:name=".UnityPlayerActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.parse.ParsePushBroadcastReceiver" 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="com.laserdeflector.sab" />
</intent-filter>
</receiver>
<service android:name="com.parse.ParsePushService" />
<activity android:name="com.soomla.store.billing.google.GooglePlayIabService$IabActivity" android:theme="#android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
<meta-data android:name="billing.service" android:value="google.GooglePlayIabService" />
</application>
<uses-feature android:glEsVersion="0x00020000" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
</manifest>
8/10/15
I have come to learn that this may be an issue with Parse v1.5.2 although changing to v1.3.2 did not help with the issue I am facing either. I will update as soon as I learn anything more.
8/11/15
Updating to v1.5.4 did not fix the issue either. Still having problems with the android manifest with the same error message. If anyone has any idea please let me know!
In my case, just taking the Unity sdk was not the answer. In order to make it work I had to use what was in the Unity blank project and then I also deleted the android manifest that v1.5.2 included in the sdk. Doing both of these things allowed the app to work correctly on my android device.
Problem is in your manifest file, you have changed the following lines
<receiver android:name="com.parse.ParsePushBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<service android:name="com.parse.ParsePushService" />
to this
<receiver android:name="com.laserdeflector.PushBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<service android:name="com.laserdeflector.ParsePushService" />
Here is the correct manifest file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.laserdeflector.sab"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:protectionLevel="signature" android:name="com.laserdeflector.sab.permission.C2D_MESSAGE" />
<uses-permission android:name="com.laserdeflector.sab.permission.C2D_MESSAGE" />
<application android:label="LaserDeflector" android:icon="#drawable/app_icon">
<activity android:name=".UnityPlayerActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.parse.ParsePushBroadcastReceiver" 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="com.laserdeflector.sab" />
</intent-filter>
</receiver>
<service android:name="com.parse.ParsePushService" />
</application>
</manifest>