Giter VIP home page Giter VIP logo

ms-intune-app-sdk-android's Introduction

Microsoft Intune App SDK for Android

Version 10.4.1

See release notes for more information. GitHub users can receive email notifications for new releases to this repo by clicking on Releases only from the "Watch" drop-down menu in the upper right-hand corner.

The Microsoft Intune App SDK for Android enables data protection features and mobile app management via Microsoft Intune.

Before you install and use Microsoft Intune App SDK for Android you must:

See the updated Gradle plugin instructions and the rest of the Intune App SDK for Android Developer Guide on how to integrate the SDK into your Android app.

Releases for the Microsoft Intune App SDK for Android

The Microsoft Intune App SDK for Android releases are less frequent than for the Microsoft Intune App SDK for iOS offering because a larger percentage of the new functionality is enabled through the Company Portal mobile application rather than the SDK integration.

For more information on the Company Portal app requirements for data protection features and mobile app management on Android, see Requirements.

Microsoft Intune App SDK for Android Sample App

See Taskr-Sample-Intune-Android-App for a sample application that integrates the Intune App SDK for Android.

ms-intune-app-sdk-android's People

Contributors

aanavath avatar meghandaly avatar mihughesms avatar msft-cofitz avatar oydang avatar philhuge-msft avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ms-intune-app-sdk-android's Issues

Link to "Gradle Plugin Instructions" is dead

Describe the bug:
Documentation issue: Link to "Gradle Plugin Instructions" is dead

To Reproduce
Steps to reproduce the behavior:

  1. View Readme.md

Expected behavior:
Link shouldn't be dead.

Cannot build library module using the gradle plugin

Describe the bug:
I'm getting the following error when using mam plugin in library module

To Reproduce

  1. make a sub module
  2. add mam plugin in module gradle
    plugins {
    id 'com.android.library'
    id 'com.microsoft.intune.mam'
    }

Screenshots and logs:
Error Log : Transforms with scopes '[SUB_PROJECTS]' cannot be applied to library projects.

Intune App SDK for Android (please complete the following information):

  • Intune SDK Version : 6.6.1
  • Android Studio 4.2 Canary 3
  • Gradle version : 4.2.0-alpha03
  • Gradle Wrpper : gradle-6.5-bin

Automatically enrolling after un enrollment in tablets

Describe the bug:
After completion of unenrollment, with in few seconds app is enrolling to same account automatically in Tablet devices. Where as it is not enrolling automatically in Mobile Devices.

To Reproduce
Steps to reproduce the behavior:

  1. Initiate unenroll
  2. perform any action
  3. After 30 Seconds Device will be enrolled.

Expected behavior:
Device should not enroll automatically after un enrolling

Smartphone (please complete the following information):

  • Device: Samsung Tab 4
  • OS: Android 9.0

Intune App SDK for Android (please complete the following information):

  • Intuner SDK version: 6.0.0
  • What platform is your app based in (Java, Xamarin based, Cordova, etc)?
    JAVA
  • Do you see a trend with it only being reproduced on a specific device?
    ONLY in Tablet devices.

Androidx support

Please add androidx support i.e Androidx class and method mappings. We are developing a business critical application using need to use Intune SDK for MAM. We are having issues when using current sdk as it only supports appcompat v4 and v7.

How to create Device Registration for LOB app

Describe the bug:
When we authenticate via MSAL and then register our LOB app for MAM enrollment enrollmentManager.registerAccountForMAM(...), we never get the screen that asks the user to register their device.

Device Registration Screen

We do see this screen when the user authenticates to Microsoft developed apps (ie, Outlook).

This is an issue because without the device record in the Intune Portal, there is no way to remotely wipe the LOB app data from a users device (for example if they lose the device).

To Reproduce
Steps to reproduce the behavior:

  1. Authenticate the user (Single account) via MSAL
  2. Register the Account for MAM
  3. Device Registration Screen does not show up.

Expected behavior:
The device registration should show up.

Screenshots and logs:

  • If applicable, add screenshots to help explain your problem.
  • If your app is experiencing an issue during build, do you have error logs?
  • If your app is experiencing an issue post build, do you have app logs for the crash itself?

Smartphone (please complete the following information):

  • Device: Pixel 4 XL
  • OS: Android 10

Intune App SDK for Android (please complete the following information):

  • What version of the Intune SDK are you using? 6.7.0 Are you using the latest version? Yes
  • What platform is your app based in (Java, Xamarin based, Cordova, etc)? Native Android (Kotlin)
  • For errors during build, does the app build without Intune SDK integration? No errors.
  • For errors post build, does the app launch without being Intune SDK integrated? Yes
  • Who is the customer? Employees
  • Do you see a trend with it only being reproduced on a specific device? No

Additional context:
Add any other context about the problem here.

Blocking Screenshots and Screen Recording

Description of the bug:
Our Application need to block all the screenshots and Recording of screen. Activities in com.microsoft.intune.mam are not having FLAG_SECURE for the Screenshot protection. Shall we expect change in next version?

Intune App SDK for Android (please complete the following information):

  • What version of the Intune SDK are you using? Are you using the latest version?
    5.6.0
  • What platform is your app based in (Java, Xamarin based, Cordova, etc)?
    Java

MSAL and Intune SDK

Hello again,

  1. It is possible use MSAL authentication instead ADAL (I think not)?
  2. In my app used MSAL for other purposes. A received NullPointerException because in my policy settings in Azure Portal included "Allow app to transfer data to other apps - None". It happened because MSAL library included authorization through "Google Custom tabs (I think)". Can I exclude MSAL library from this policy or? .

Thanks

Throws error when Firebase Cloud Messaging notification receives

java.lang.LinkageError: Method void com.google.firebase.iid.FirebaseInstanceIdReceiver.onReceive(android.content.Context, android.content.Intent) overrides final method in class Lcom/microsoft/intune/mam/client/content/MAMBroadcastReceiver; (declaration of 'com.google.firebase.iid.FirebaseInstanceIdReceiver' appears in /data/app/com.linthub.yesinvest-34Od_Mwoj_3M02jWiDfOtg==/base.apk!classes2.dex) at java.lang.VMClassLoader.findLoadedClass(Native Method) at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:738) at java.lang.ClassLoader.loadClass(ClassLoader.java:363) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.app.AppComponentFactory.instantiateReceiver(AppComponentFactory.java:84) at androidx.core.app.CoreComponentFactory.instantiateReceiver(CoreComponentFactory.java:54) at android.app.ActivityThread.handleReceiver(ActivityThread.java:3539) at android.app.ActivityThread.access$1300(ActivityThread.java:235) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1779) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:6981) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)

crash when start application with 5.6.0 sdk

05-07 13:13:54.477 16583 16583 I zygote : Rejecting re-init on previously-failed class java.lang.Class<com.microsoft.intune.mam.client.support.v7.app.MAMAppCompatActivity>: java.lang.LinkageError: Method void com.microsoft.intune.mam.client.support.v7.app.MAMAppCompatActivityBase.onActivityResult(int, int, android.content.Intent) overrides final method in class Lcom/microsoft/intune/mam/client/app/MAMActivity; (declaration of 'com.microsoft.intune.mam.client.support.v7.app.MAMAppCompatActivityBase' appears in /data/app/us.zoom.videomeetings4intune-_WnP35inu2iag0LhmB8CTA==/base.apk!classes2.dex)
05-07 13:13:54.477 16583 16583 I zygote : at java.lang.Class java.lang.VMClassLoader.findLoadedClass(java.lang.ClassLoader, java.lang.String) (VMClassLoader.java:-2)
05-07 13:13:54.477 16583 16583 I zygote : at java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) (ClassLoader.java:738)
05-07 13:13:54.477 16583 16583 I zygote : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:363)
05-07 13:13:54.477 16583 16583 I zygote : at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
05-07 13:13:54.477 16583 16583 I zygote : at java.lang.Class com.microsoft.intune.mam.client.app.ActivityBehaviorImpl.lambda$new$24(com.microsoft.intune.mam.client.app.ActivityBehaviorImpl, android.content.Context) (ActivityBehaviorImpl.java:246)
05-07 13:13:54.478 16583 16583 I zygote : at java.lang.Object com.microsoft.intune.mam.client.app.-$$Lambda$ActivityBehaviorImpl$KWxQH8PA_3W81tqcurAyHKW4XLI.get() (lambda:-1)
05-07 13:13:54.478 16583 16583 I zygote : at java.lang.Object com.microsoft.intune.mam.client.util.LazyInit.get() (LazyInit.java:37)
05-07 13:13:54.478 16583 16583 I zygote : at boolean com.microsoft.intune.mam.client.app.ActivityBehaviorImpl.isAppCompatActivity() (ActivityBehaviorImpl.java:1618)
05-07 13:13:54.478 16583 16583 I zygote : at void com.microsoft.intune.mam.client.app.ActivityBehaviorImpl.handleSupportLayoutInflater() (ActivityBehaviorImpl.java:1584)
05-07 13:13:54.478 16583 16583 I zygote : at void com.microsoft.intune.mam.client.app.ActivityBehaviorImpl.attachBaseContext(com.microsoft.intune.mam.client.app.HookedActivity, android.content.Context) (ActivityBehaviorImpl.java:266)
05-07 13:13:54.478 16583 16583 I zygote : at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
05-07 13:13:54.478 16583 16583 I zygote : at java.lang.Object com.microsoft.intune.mam.InterProxy$InterInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) (InterProxy.java:85)
05-07 13:13:54.478 16583 16583 I zygote : at java.lang.Object java.lang.reflect.Proxy.invoke(java.lang.reflect.Proxy, java.lang.reflect.Method, java.lang.Object[]) (Proxy.java:913)
05-07 13:13:54.478 16583 16583 I zygote : at void com.microsoft.intune.mam.client.app.ActivityBehavior.attachBaseContext(com.microsoft.intune.mam.client.app.HookedActivity, android.content.Context) ((null):-1)
05-07 13:13:54.478 16583 16583 I zygote : at void com.microsoft.intune.mam.client.app.MAMActivity.attachBaseContext(android.content.Context) (MAMActivity.java:55)
05-07 13:13:54.478 16583 16583 I zygote : at void android.app.Activity.attach(android.content.Context, android.app.ActivityThread, android.app.Instrumentation, android.os.IBinder, int, android.app.Application, android.content.Intent, android.content.pm.ActivityInfo, java.lang.CharSequence, android.app.Activity, java.lang.String, android.app.Activity$NonConfigurationInstances, android.content.res.Configuration, java.lang.String, com.android.internal.app.IVoiceInteractor, android.view.Window, android.view.ViewRootImpl$ActivityConfigCallback) (Activity.java:7191)

On upgrading to 5.6.0, app crashes on startup

Nexus 5X, Android 7.1.1

java.lang.NullPointerException: Attempt to invoke interface method 'android.os.Bundle com.microsoft.intune.mam.client.ipc.AppPolicyEndpoint.prefetchCurrentFileEncryptionKey(java.lang.String)' on a null object reference
  at com.microsoft.intune.mam.client.ipcclient.MAMClientImpl.prefetchCurrentFileEncryptionKey(MAMClientImpl.java:509)
  at com.microsoft.intune.mam.client.fileencryption.FileEncryptionKeyCacheImpl.lambda$startKeyFetchAsync$128(FileEncryptionKeyCacheImpl.java:151)
  at com.microsoft.intune.mam.client.fileencryption.-$$Lambda$FileEncryptionKeyCacheImpl$j19Krfx5GlWZTPCO2vtNDQz2uSs.run(lambda:-1)
  at java.lang.Thread.run(Thread.java:761)

Always NOT_LICENSED on release build

SDK setted up according to the guid on https://docs.microsoft.com/en-us/intune/developer/app-sdk-android and my test user assigned license, but I'm keep receiving status NOT_LICENSED. Also I checked it on release build, but again got NOT_LICENSED.

Code of registration:

@Inject
lateinit var mamManager: MAMManager

val authenticationContext = AuthenticationContext(activity, getString(R.string.authority), true)
authenticationContext.acquireToken(
                getString(R.string.resource),
                getString(R.string.client_id),
                getString(R.string.redirect),
                null,
                PromptBehavior.Always,
                "",
                object : AuthenticationCallback<AuthenticationResult> {
                    override fun onError(exc: Exception) {
                     
                    }

                    override fun onSuccess(result: AuthenticationResult?) {
                            mamManager.register(
                                    result.userInfo.displayableId,
                                    result.userInfo.userId,
                                    result.tenantId,
                                    result.authority,
                                    result.accessToken
                            )
                        }
                    }
                }
)
class IntuneManager : MAMManager {

    companion object {
        private const val UPN_KEY = "mam_upn"
        private const val ACCESS_TOKEN_KEY = "mam_access_token"
    }

    @Inject
    lateinit var sharedPreferences: SharedPreferences

    private val manager: MAMEnrollmentManager = MAMComponents.get(MAMEnrollmentManager::class.java)!!

    init {
        manager.registerAuthenticationCallback { _, _, _ ->
            var token: String? = null
            sharedPreferences.getString(ACCESS_TOKEN_KEY, null)
        }
    }

    override fun register(upn: String, userId: String, tenantId: String, authority: String, accessToken: String) {
        sharedPreferences.edit()
                .putString(UPN_KEY, upn)
                .putString(ACCESS_TOKEN_KEY, accessToken)
                .apply()
        manager.registerAccountForMAM(upn, userId, tenantId, authority)
    }

    override fun unregister() {
        sharedPreferences.getString(UPN_KEY, null)?.also {
            manager.unregisterAccountForMAM(it)
        }
    }
}

Difference in App Un-enrollment behavior in iOS and Android

When un-enrolling the app by calling

MAMEnrollmentManager::unregisterAccountForMAM(String upn)

in iOS, method accepts additional flag 'withWipe' but in Android app's data gets wiped forcefully.

Is there any way we can get similar behavior as iOS?
We don't really want to wipe the app's data in Android.

To Reproduce
Steps to reproduce the behavior:

  • Unenroll Android app by calling above method.
  • Notice the crash (possibly due to force wipe of app data)

Expected behavior:

  • App should not crash

**Intune App SDK for Android : **

  • Intune SDK 6.0.0
  • Java / Kotlin

Login Credentials are asked always to get MAM Policies.

Describe the bug:
Azure Login credentials are being prompted always which acquiring token, when when Prompt behavior set to Auto.

Steps to Reproduce

  1. Enroll the Application with MAM by login to Azure account.
  2. Unenroll the user.
  3. Try enroll again.

At step 3 in iOS app credentials are not asked with the same user who logged in at 1st step. This is different in Android.

Intune App SDK for Android (please complete the following information):

  • What version of the Intune SDK are you using? Are you using the latest version?
    Version 6.3.0
  • What platform is your app based in (Java, Xamarin based, Cordova, etc)?
    Java

Android latest appcompact-v7 support

I met this kind of issue when I integrating with intune sdk.

  Process: com.bhpb.travel, PID: 17348
                                                                 java.lang.AbstractMethodError: abstract method "boolean android.support.v7.app.AppCompatDelegate.applyDayNight()"
                                                                     at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:74)
                                                                     at com.microsoft.intune.mam.client.support.v7.app.MAMAppCompatActivityBase.onCreateReal(MAMAppCompatActivityBase.java:80)
                                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                                     at com.microsoft.intune.mam.InterProxy$InterInvocationHandler.invoke(InterProxy.java:70)
                                                                     at java.lang.reflect.Proxy.invoke(Proxy.java:393)
                                                                     at $Proxy9.onCreateReal(Unknown Source)
                                                                     at com.microsoft.intune.mam.client.app.ActivityBehaviorImpl.onMAMCreate(ActivityBehaviorImpl.java:445)
                                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                                     at com.microsoft.intune.mam.InterProxy$InterInvocationHandler.invoke(InterProxy.java:70)
                                                                     at java.lang.reflect.Proxy.invoke(Proxy.java:393)
                                                                     at $Proxy8.onMAMCreate(Unknown Source)
                                                                     at com.microsoft.intune.mam.client.support.v7.app.MAMAppCompatActivityBase.onMAMCreate(MAMAppCompatActivityBase.java:72)

It seems that MSMAMAppCompatDelegateWrapper class doesn't implement applyDayNight method.

When will this SDK support the Android N release?

The Intune App SDK is a compiled Android project. As a result, it is largely agnostic to the version of Android the app uses for its minimum or target API versions. The SDK supports Android API 14 (Android 4.0+) to Android 24.

Gradle Sync Error when combining with Realm Latest Version

Describe the bug:
I need to update the version of Realm DB to the latest because of a security vulnerability. When doing so, as soon as I try to sync the gradle plugin I get an error on com.microsoft.intune.mam.MamifyConfiguration

Screenshots and logs:
Screen Shot 2019-12-16 at 12 22 21 PM
Screen Shot 2019-12-16 at 12 22 28 PM

Intune App SDK for Android (please complete the following information):

  • What version of the Intune SDK are you using? Are you using the latest version?
    Latest Version
  • What platform is your app based in (Java, Xamarin based, Cordova, etc)?
    Android Studio using Kotlin
  • For errors during build, does the app build without Intune SDK integration?
    Yes
  • Who is the customer?
    CipherHealth LLC

Can not enroll user untill app's storage is clear when policies are removed and added

Describe the bug:
Could not enroll the application when the policies are removed for the first time and added from the next time. We are able to enroll only after clearing the storage of application and trying enrollment.

To Reproduce
Steps to reproduce the behavior:

  1. Remove the policies for the user in azure intune portal
  2. Try enrolling app
  3. You will get NOT_LICENSED, which is desired.
  4. Now Add the policies for the user in intune portal.
  5. Try enrolling in the app.
  6. Still you will get NOT_LICENSED
  7. Clear app storage, and try enrollment. Now it will enroll.

Expected behavior:
The enrollment should happen at 6th step with out clearing the app storage.

Intune App SDK for Android (please complete the following information):

  • What version of the Intune SDK are you using? Are you using the latest version?
    6.0.0
  • What platform is your app based in (Java, Xamarin based, Cordova, etc)?
    Java

java.lang.AssertionError: Attempt to access uninitialized OfflineComponents

I'm trying to migrate my Kotlin app to Android X and the app is crashing at startup because it is unable to initialize OfflineComponents.

App crashes in the following line:
val mgr = MAMComponents.get(MAMEnrollmentManager::class.java)

Screenshots and logs:
Screen Shot 2020-09-09 at 15 43 56

Intune App SDK for Android (please complete the following information):

  • What version of the Intune SDK are you using? Are you using the latest version? 7.0.0
  • What platform is your app based in (Java, Xamarin based, Cordova, etc)? Kotlin
  • For errors during build, does the app build without Intune SDK integration? Yes
  • For errors post build, does the app launch without being Intune SDK integrated? Yes
  • Who is the customer? CipherHealth
  • Do you see a trend with it only being reproduced on a specific device? No

Receiving NOT_LICENSED when doing app enrollment

We are unable to successfully register our LOB app for App Protection Policy. We consistently receive NOT_LICENSED.
I have tried in both debug and release, so this isn't the same as Issue #7. I also looked at Issue #28, and didn't see any resolution there.

To Reproduce
We are using MSAL with the Intune SDK. We first log the user in by creating a Public Client Application, and signing in. Our .json file looks similar to this:

{
  "client_id": "<removed>",
  "authorization_user_agent": "DEFAULT",
  "redirect_uri": "<removed>",
  "account_mode": "SINGLE",
  "authorities": [
    {
      "type": "AAD",
      "audience": {
        "type": "AzureADMyOrg",
        "tenant_id": "<removed>"
      }
    }
  ]
}

Login code:

    singleAccountApp = PublicClientApplication.createSingleAccountPublicClientApplication(activity, R.raw.msal)
    val acctResult = singleAccountApp?.currentAccount
    account = acctResult?.currentAccount
    if (account == null) {
       singleAccountApp?.signIn(activity, null, listOf(<application read scope>).toTypedArray(), callback)
    }

Callback code:

    private fun getAuthInteractiveCallback(): AuthenticationCallback {
        return object : AuthenticationCallback {
            override fun onSuccess(authenticationResult: IAuthenticationResult) {
                lifecycle.coroutineScope.launch {
                    withContext(Dispatchers.IO) {
                        // Retrieve token from auth result, and keep reference to account
                    }
                    //update UI to indicate successful login and prepare for mam enrollment
                }

            }

            override fun onError(exception: MsalException) {
                Timber.e("Authentication failed: $exception")
                Timber.e(exception.localizedMessage)
                if (exception is MsalUiRequiredException) {
                    lifecycle.coroutineScope.launch {
                        withContext(Dispatchers.IO) {
                           // TODO
                            }
                        }
                    }
                } else {
                    Snackbar.make(nextStepButton, "Error Logging in: ${exception.localizedMessage}", Snackbar.LENGTH_LONG).show()
                }
                hideProgressBar()
            }

            override fun onCancel() {
                hideProgressBar()
            }
        }
    }

After successful login, we attempt to mam enroll the app:

                    lifecycle.coroutineScope.launch {
                        withContext(Dispatchers.IO) {
                            val enrollmentManager = MAMComponents.get(MAMEnrollmentManager::class.java)!!
                            enrollmentManager.registerAuthenticationCallback(this@IntuneActivity)
                             enrollmentManager.registerAccountForMAM(upn, aadId, tenantId, authority) //I have tried this call both with and without the authority....same result
                            }
                        }
                    }

Callback for the Acquire Token. I have tried various things here, sending our app read token, getting a token based on the resource id, etc. I always seem to get NOT_LICENSED, no matter what I try.

    override fun acquireToken(upn: String, aadId: String, resourceId: String): String? {
        Timber.e("Intune wants a token for resoruce: $resourceId")
        lifecycleScope.launch {
            val mamToken = withContext(Dispatchers.IO) {
                // The resource ID passed into this method is:  https://msmamservice.app.application, I have tried requesting a token with scope https://msmamservice.app.application/DeviceManagementManagedApps.ReadWrite, https://msmamservice.app.application/.default and https://wip.mam.manage.microsoft.us//DeviceManagementManagedApps.ReadWrite none o fthem work.
                AzureAuth.getTokenForResource(resourceId)
            }
            Timber.e("mamToken: $mamToken")
            val enrollmentManager = MAMComponents.get(MAMEnrollmentManager::class.java)!!
            enrollmentManager.updateToken(upn, aadId, resourceId, mamToken!!)
            Timber.e("Token updated.")
        }
        Timber.e("Returning null")
        return null
    }

Expected behavior:
I would expect to get ENROLLMENT_SUCCEEDED as a result instead of NOT_LICENSED

Screenshots and logs:

    2020-08-25 09:46:10.216 20162-20340/com.company.package I/MAMWEAccountRegistry: getAccountInfo() called for account that is not registered: <removed>
    2020-08-25 09:46:10.237 20162-20340/com.company.package E/IntuneActivity$nextStep: Podcast token: AzureAccessToken(accessToken=<removed>, upn=<removed>, aadId=<removed>, tenantId=<removed>, expireDate=Tue Aug 25 09:46:00 CDT 2020, type=PODCAST_READER_TYPE)
    2020-08-25 09:46:10.237 20162-20340/com.company.package E/IntuneActivity$nextStep: Authority: https://login.microsoftonline.com/<removed>/v2.0
    2020-08-25 09:46:10.238 20162-20340/com.company.package I/MAMWEAccountRegistry: getAccountInfo() called for account that is not registered: <removed>
    2020-08-25 09:46:10.238 20162-20340/com.company.package I/MAMWEAccountRegistry: getAccountInfo() called for account that is not registered: <removed>
    2020-08-25 09:46:10.239 20162-20340/com.company.package I/MAMWEAccountRegistry: registering account <removed>
    2020-08-25 09:46:10.245 20162-20340/com.company.package I/AMEnrollmentManagerImpl: attempting MAM-WE V2 enrollment for: <removed>; MAM-CA flow: false
    2020-08-25 09:46:10.245 20162-20340/com.company.package I/MAMWERetrySchedulerImpl: removing any remaining scheduled tasks for <removed>
    2020-08-25 09:46:10.246 20162-20340/com.company.package I/SessionDurationStore: Setting telemetry session [c86334d0-14b6-46a4-8a2a-77dec8b6eb31] start time: 78814642
    2020-08-25 09:46:10.250 20162-21540/com.company.package I/KnownClouds: defaulting to worldwide
    2020-08-25 09:46:10.254 20162-21540/com.company.package I/AuthCallbackUtils: Calling app's acquireToken callback.
    2020-08-25 09:46:10.254 20162-21540/com.company.package E/IntuneActivity: Intune wants a token for resource: https://msmamservice.api.application
    2020-08-25 09:46:10.256 20162-21540/com.company.package E/IntuneActivity: Returning null
    2020-08-25 09:46:10.257 20162-20340/com.company.package E/AzureAuth$Companion: Requesting token for scope: https://wip.mam.manage.microsoft.us//DeviceManagementManagedApps.ReadWrite <---have tried many different scopes here, as the comment in the code indicates
    2020-08-25 09:46:10.257 20162-21540/com.company.package I/AuthCallbackUtils: App's acquireToken callback did not return a token.
    2020-08-25 09:46:10.259 20162-21540/com.company.package I/TelemetryLoggerImpl: {"SERVICE_NAME":"ADAL","START_TIME":78814649,"MAM_APP_ID":"<removed>","SUCCEEDED":false,"OPERATION_NAME":"GetMAMServiceToken","MAM_APP_VERSION":"2020.3-DEBUG","EVENT_CLASS":"com.microsoft.intune.mam.client.telemetry.events.ServiceRequestEvent","DEVICE_BRAND":"google","AAD_TENANT_ID":"<removed>","SESSION_ID":"c86334d0-14b6-46a4-8a2a-77dec8b6eb31","DURATION":5,"AUTH_TYPE":"APIV2"}
    2020-08-25 09:46:10.277 20162-21540/com.company.package I/AMEnrollmentManagerImpl: <removed> is not enrolled in MAM Service for identity <removed>
    2020-08-25 09:46:10.279 20162-21540/com.company.package I/MAMWEAccountRegistry: updating account <removed> with status AUTHORIZATION_NEEDED
    2020-08-25 09:46:10.288 20162-21540/com.company.package I/MAMWERetrySchedulerImpl: For MAMWE error APP_DID_NOT_PROVIDE_TOKEN using retry interval 10000
    2020-08-25 09:46:10.294 20162-21540/com.company.package I/MAMWERetrySchedulerImpl: scheduling MAM-WE enrollment retry in 10000 ms for <removed> with status AUTHORIZATION_NEEDED
    2020-08-25 09:46:10.295 20162-21540/com.company.package I/MAMWERetrySchedulerImpl: scheduling enrollment retry task for <removed> due at 2020-08-25 08:46:20.
    2020-08-25 09:46:10.296 20162-21540/com.company.package I/entNotificationReceiver: Received MAM enrollment result for package <removed>, user <removed>: AUTHORIZATION_NEEDED
    2020-08-25 09:46:10.296 20162-20284/com.company.package I/MAMWERetrySchedulerImpl: task thread got 0 task(s) to execute.
    2020-08-25 09:46:10.296 20162-20284/com.company.package I/MAMWERetrySchedulerImpl: task thread waiting for tasks.
    2020-08-25 09:46:10.301 20162-21540/com.company.package I/TelemetryLoggerImpl: {"MAM_APP_ID":"<removed>","MAM_APP_VERSION":"2020.3-DEBUG","ERROR":"APP_DID_NOT_PROVIDE_TOKEN","EVENT_CLASS":"com.microsoft.intune.mam.client.telemetry.events.ScenarioEvent","DEVICE_BRAND":"google","SCENARIO":"ENROLLMENT","AAD_TENANT_ID":"<removed>","SESSION_ID":"c86334d0-14b6-46a4-8a2a-77dec8b6eb31","RESULT":"AUTH_NEEDED","DURATION":51,"STOP_TIME":78814697}
    2020-08-25 09:46:10.310 20162-21540/com.company.package E/IntuneActivity$setupListener: Enrollment Receiver AUTHORIZATION_NEEDED
    2020-08-25 09:46:10.967 20162-20162/com.company.package E/IntuneActivity$acquireToken: mamToken: <removed>
    2020-08-25 09:46:10.971 20162-20162/com.company.package I/AMEnrollmentManagerImpl: <removed> is not enrolled in MAM Service for identity <removed>
    2020-08-25 09:46:10.972 20162-20162/com.company.package I/AMEnrollmentManagerImpl: attempting MAM-WE V2 enrollment for: <removed>; MAM-CA flow: false
    2020-08-25 09:46:10.972 20162-20162/com.company.package I/MAMWERetrySchedulerImpl: removing any remaining scheduled tasks for <removed>
    2020-08-25 09:46:10.973 20162-20162/com.company.package I/SessionDurationStore: Setting telemetry session [c2d6433c-1e59-4787-bd09-f5c6c8f5a2b5] start time: 78815370
    2020-08-25 09:46:10.979 20162-21543/com.company.package I/KnownClouds: defaulting to worldwide
    2020-08-25 09:46:10.979 20162-20162/com.company.package I/MAMWEAccountRegistry: updating account <removed> with TokenNeededReason: NOT_NEEDED
    2020-08-25 09:46:11.020 20162-20162/com.company.package E/IntuneActivity$acquireToken: Token updated.
    2020-08-25 09:46:11.036 20162-21543/com.company.package I/AMEnrollmentManagerImpl: MAM Service enrollment for com.company.package, identity <removed>, returned result: PENDING
    2020-08-25 09:46:12.362 20162-20190/com.company.package I/.MAMNotificationHandler: Delivering MAM_ENROLLMENT_RESULT notification
    2020-08-25 09:46:12.363 20162-20190/com.company.package I/MAMWEAccountRegistry: updating account <removed> with status NOT_LICENSED
    2020-08-25 09:46:12.370 20162-20190/com.company.package I/MAMWERetrySchedulerImpl: For NOT_LICENSED MAM-WE account <removed> using retry interval 43200000 ms (12 hours)
    2020-08-25 09:46:12.376 20162-20190/com.company.package I/MAMWERetrySchedulerImpl: scheduling MAM-WE enrollment retry in 43200000 ms (12 hours) for <removed> with status NOT_LICENSED
    2020-08-25 09:46:12.377 20162-20190/com.company.package I/MAMWERetrySchedulerImpl: scheduling enrollment retry task for <removed> due at 2020-08-25 20:46:12.
    2020-08-25 09:46:12.377 20162-20190/com.company.package I/entNotificationReceiver: Received MAM enrollment result for package com.company.package, user <removed>: NOT_LICENSED
    2020-08-25 09:46:12.378 20162-20284/com.company.package I/MAMWERetrySchedulerImpl: task thread got 0 task(s) to execute.
    2020-08-25 09:46:12.378 20162-20284/com.company.package I/MAMWERetrySchedulerImpl: task thread waiting for tasks.
    2020-08-25 09:46:12.385 20162-20190/com.company.package I/TelemetryLoggerImpl: {"MAM_APP_ID":"<removed>","MAM_APP_VERSION":"2020.3-DEBUG","ERROR":"NONE_KNOWN","EVENT_CLASS":"com.microsoft.intune.mam.client.telemetry.events.ScenarioEvent","DEVICE_BRAND":"google","SCENARIO":"ENROLLMENT","AAD_TENANT_ID":"<removed>","SESSION_ID":"c2d6433c-1e59-4787-bd09-f5c6c8f5a2b5","RESULT":"NOT_LICENSED","DURATION":1404,"STOP_TIME":78816782}
    2020-08-25 09:46:12.393 20162-20190/com.company.package E/IntuneActivity$setupListener: Enrollment Receiver NOT_LICENSED

Smartphone (please complete the following information):

  • Device: Pixel 2 XL
  • OS: Android 10

Intune App SDK for Android (please complete the following information):

  • What version of the Intune SDK are you using? 6.7.0 Are you using the latest version? Yes
  • What platform is your app based in (Java, Xamarin based, Cordova, etc)? Native Android (Kotlin)
  • For errors during build, does the app build without Intune SDK integration? No Build Errors
  • For errors post build, does the app launch without being Intune SDK integrated? Yes.
  • Who is the customer?
  • Do you see a trend with it only being reproduced on a specific device? No

Additional context:
Add any other context about the problem here.

Question: trigger set pincode

Not sure if this is the right place to ask this, but is there a way to trigger the set pin-code activity manually after the app i successfully enrolled? It seems to me that this only shows the next time I start the application after enrollement and that user flow seems a bit weird to me.

Crash from JNI in MAMAppConfigBase.getFullData

Describe the bug:
When calling MAMAppConfig.getFullData(), the application crashes with a JNI error from inside the MAM SDK.

2020-06-16 17:16:50.820 21305-21305/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2020-06-16 17:16:50.820 21305-21305/? A/DEBUG: Build fingerprint: 'google/sdk_gphone_x86/generic_x86:10/QSR1.190920.001/5891938:user/release-keys'
2020-06-16 17:16:50.820 21305-21305/? A/DEBUG: Revision: '0'
2020-06-16 17:16:50.820 21305-21305/? A/DEBUG: ABI: 'x86'
2020-06-16 17:16:50.821 21305-21305/? A/DEBUG: Timestamp: 2020-06-16 17:16:50+0200
2020-06-16 17:16:50.821 21305-21305/? A/DEBUG: pid: 20610, tid: 20661, name: DefaultDispatch  >>> com.example.myapp <<<
2020-06-16 17:16:50.821 21305-21305/? A/DEBUG: uid: 1110158
2020-06-16 17:16:50.821 21305-21305/? A/DEBUG: signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
2020-06-16 17:16:50.821 21305-21305/? A/DEBUG: Abort message: 'JNI DETECTED ERROR IN APPLICATION: the return type of CallNonvirtualObjectMethodA does not match java.util.List com.microsoft.intune.mam.policy.appconfig.MAMAppConfigBase.getFullData()
        in call to CallNonvirtualObjectMethodA
        from java.lang.Object com.example.myapp.MyClass.myMethod(java.lang.String, android.app.Activity, kotlin.coroutines.Continuation)'
2020-06-16 17:16:50.821 21305-21305/? A/DEBUG:     eax 00000000  ebx 00005082  ecx 000050b5  edx 00000006
2020-06-16 17:16:50.821 21305-21305/? A/DEBUG:     edi f110633e  esi c66c0d20
2020-06-16 17:16:50.821 21305-21305/? A/DEBUG:     ebp f5916ad0  esp c66c0cc8  eip f5916ad9
2020-06-16 17:16:51.028 21305-21305/? A/DEBUG: backtrace:
2020-06-16 17:16:51.028 21305-21305/? A/DEBUG:       #00 pc 00000ad9  [vdso] (__kernel_vsyscall+9)
2020-06-16 17:16:51.028 21305-21305/? A/DEBUG:       #01 pc 00092328  /apex/com.android.runtime/lib/bionic/libc.so (syscall+40) (BuildId: 76290498408016ad14f4b98c3ab6c65c)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #02 pc 000ad651  /apex/com.android.runtime/lib/bionic/libc.so (abort+193) (BuildId: 76290498408016ad14f4b98c3ab6c65c)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #03 pc 00565070  /apex/com.android.runtime/lib/libart.so (art::Runtime::Abort(char const*)+2448) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #04 pc 000249b3  /apex/com.android.runtime/lib/libartbase.so (_ZNSt3__110__function6__funcIPFvPKcENS_9allocatorIS5_EES4_EclEOS3_+35) (BuildId: b3a3a0a741f44556d02d009140734527)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #05 pc 0000bac7  /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+727) (BuildId: e6c80e0dfebf299cd41f1c732ad018a9)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #06 pc 003e539d  /apex/com.android.runtime/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1725) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #07 pc 003e55a4  /apex/com.android.runtime/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, char*)+116) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #08 pc 003d6b45  /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+69) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #09 pc 003da016  /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::ScopedCheck::CheckMethodAndSig(art::ScopedObjectAccess&, _jobject*, _jclass*, _jmethodID*, art::Primitive::Type, art::InvokeType)+1430) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #10 pc 003da5da  /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodA(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, jvalue const*, art::Primitive::Type, art::InvokeType)+986) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #11 pc 003c55ba  /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallNonvirtualObjectMethodA(_JNIEnv*, _jobject*, _jclass*, _jmethodID*, jvalue const*)+74) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #12 pc 00032bdb  /apex/com.android.runtime/lib/libjdwp.so (invoker_doInvoke+4811) (BuildId: f2318c2010ed8e75bc0266e5c22a2947)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #13 pc 0002e2e2  /apex/com.android.runtime/lib/libjdwp.so (reportEvents+706) (BuildId: f2318c2010ed8e75bc0266e5c22a2947)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #14 pc 0002dceb  /apex/com.android.runtime/lib/libjdwp.so (event_callback+1163) (BuildId: f2318c2010ed8e75bc0266e5c22a2947)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #15 pc 000299bf  /apex/com.android.runtime/lib/libjdwp.so (cbSingleStep+463) (BuildId: f2318c2010ed8e75bc0266e5c22a2947)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #16 pc 000349f7  /apex/com.android.runtime/lib/libopenjdkjvmti.so (openjdkjvmti::JvmtiMethodTraceListener::DexPcMoved(art::Thread*, art::Handle<art::mirror::Object>, art::ArtMethod*, unsigned int)+1399) (BuildId: 34b9b3ee4fc212f4e2346324751d67a1)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #17 pc 002eeff5  /apex/com.android.runtime/lib/libart.so (art::instrumentation::Instrumentation::DexPcMovedEventImpl(art::Thread*, art::ObjPtr<art::mirror::Object>, art::ArtMethod*, unsigned int) const+181) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #18 pc 00343705  /apex/com.android.runtime/lib/libart.so (art::interpreter::InstructionHandler<false, false>::DoDexPcMoveEvent(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame const&, unsigned int, art::instrumentation::Instrumentation const*, art::JValue*)+277) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #19 pc 0033f167  /apex/com.android.runtime/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+26727) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #20 pc 00145b52  /apex/com.android.runtime/lib/libart.so (ExecuteSwitchImplAsm+18) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #21 pc 0040a33c  [anon:dalvik-classes.dex extracted in memory from /data/app/com.example.myapp-RUcgEopTDWnarrB1piqgIg==/base.apk] (com.example.MyClass.myMethod)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #22 pc 002f8f92  /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.12194892193087984976+690) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #23 pc 002ffe19  /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+217) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #24 pc 0032c17e  /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+958) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #25 pc 0033ee45  /apex/com.android.runtime/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+25925) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #26 pc 00145b52  /apex/com.android.runtime/lib/libart.so (ExecuteSwitchImplAsm+18) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.029 21305-21305/? A/DEBUG:       #27 pc 00408580  [anon:dalvik-classes.dex extracted in memory from /data/app/com.example.myapp-RUcgEopTDWnarrB1piqgIg==/base.apk] (com.example.MyClass$myMethod$2.invokeSuspend)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #28 pc 002f8f92  /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.12194892193087984976+690) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #29 pc 002ffe19  /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+217) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #30 pc 0032c17e  /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+958) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #31 pc 0033edd3  /apex/com.android.runtime/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+25811) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #32 pc 00145b52  /apex/com.android.runtime/lib/libart.so (ExecuteSwitchImplAsm+18) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #33 pc 0048dae4  [anon:dalvik-classes.dex extracted in memory from /data/app/com.example.myapp-RUcgEopTDWnarrB1piqgIg==/base.apk] (kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #34 pc 002f8f92  /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.12194892193087984976+690) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #35 pc 002ffe19  /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+217) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #36 pc 0032c17e  /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+958) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #37 pc 0033ee45  /apex/com.android.runtime/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+25925) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #38 pc 00145b52  /apex/com.android.runtime/lib/libart.so (ExecuteSwitchImplAsm+18) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #39 pc 004c09e8  [anon:dalvik-classes.dex extracted in memory from /data/app/com.example.myapp-RUcgEopTDWnarrB1piqgIg==/base.apk] (kotlinx.coroutines.DispatchedTask.run)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #40 pc 002f8f92  /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.12194892193087984976+690) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #41 pc 002ffe19  /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+217) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #42 pc 0032c17e  /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+958) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #43 pc 0033ee45  /apex/com.android.runtime/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+25925) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #44 pc 00145b52  /apex/com.android.runtime/lib/libart.so (ExecuteSwitchImplAsm+18) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #45 pc 0050a198  [anon:dalvik-classes.dex extracted in memory from /data/app/com.example.myapp-RUcgEopTDWnarrB1piqgIg==/base.apk] (kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #46 pc 002f8f92  /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.12194892193087984976+690) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #47 pc 002ffe19  /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+217) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #48 pc 0032c17e  /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+958) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #49 pc 0033edd3  /apex/com.android.runtime/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+25811) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #50 pc 00145b52  /apex/com.android.runtime/lib/libart.so (ExecuteSwitchImplAsm+18) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #51 pc 00508d84  [anon:dalvik-classes.dex extracted in memory from /data/app/com.example.myapp-RUcgEopTDWnarrB1piqgIg==/base.apk] (kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #52 pc 002f8f92  /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.12194892193087984976+690) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #53 pc 002ffe19  /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+217) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #54 pc 0032c17e  /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+958) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #55 pc 0033b651  /apex/com.android.runtime/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false, false>(art::interpreter::SwitchImplContext*)+11601) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #56 pc 00145b52  /apex/com.android.runtime/lib/libart.so (ExecuteSwitchImplAsm+18) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #57 pc 00508e9c  [anon:dalvik-classes.dex extracted in memory from /data/app/com.example.myapp-RUcgEopTDWnarrB1piqgIg==/base.apk] (kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker)
2020-06-16 17:16:51.030 21305-21305/? A/DEBUG:       #58 pc 0068467e  /apex/com.android.runtime/lib/libart.so (MterpInvokeDirect+1534) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.031 21305-21305/? A/DEBUG:       #59 pc 00138921  /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_direct+33) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.031 21305-21305/? A/DEBUG:       #60 pc 00508e84  [anon:dalvik-classes.dex extracted in memory from /data/app/com.example.myapp-RUcgEopTDWnarrB1piqgIg==/base.apk] (kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run)
2020-06-16 17:16:51.031 21305-21305/? A/DEBUG:       #61 pc 002f8e0a  /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.12194892193087984976+298) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.031 21305-21305/? A/DEBUG:       #62 pc 002ffcc5  /apex/com.android.runtime/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+181) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.031 21305-21305/? A/DEBUG:       #63 pc 0066fbd9  /apex/com.android.runtime/lib/libart.so (artQuickToInterpreterBridge+1209) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.031 21305-21305/? A/DEBUG:       #64 pc 0014503d  /apex/com.android.runtime/lib/libart.so (art_quick_to_interpreter_bridge+77) (BuildId: 895645e5113da057f27d9b2ec11eb3bf)
2020-06-16 17:16:51.031 21305-21305/? A/DEBUG:       #65 pc 001451cf  /apex/com.android.runtime/lib/libart.so (BuildId: 895645e5113da057f27d9b2ec11eb3bf)

To Reproduce

val configManager = loadMamConfigManager()
val config = configManager.getAppConfig("[email protected]")
val all = config.fullData

Expected behavior:
I expect for all to contain a Map of the configuration key/value pairs.

Smartphone (please complete the following information):

  • Device: Emulator x86
  • OS: Android

Intune App SDK for Android (please complete the following information):

  • What version of the Intune SDK are you using? Are you using the latest version? 6.5.3, yes
  • What platform is your app based in (Java, Xamarin based, Cordova, etc)? Java
  • For errors post build, does the app launch without being Intune SDK integrated? Yes

Additional context:
Portal app is installed, user is logged in, policy is assigned, and MAM logs suggest the policy has been synced. This code has worked in the past.

Is there any Intune SDK integrated Android app with SSO login sample app?

Tried to create SSO login for Android app , following below url :
https://docs.microsoft.com/en-us/azure/active-directory/develop/scenario-mobile-app-registration

Now once i try to login , getting exception as :
Authentication error : the base64 url encoded signature component of the redirect uri does not match the expected value.
Please find the screenshot for the same.

Need help to make SSO login android app. please let me know if any sample app is there where Intune SDK is integrated and SSO login is enabled.
Screenshot_20190529-003953

Thanks for advance.

Could not build the app : Mamification failed

Describe the bug:
Could not generate the build. It is printing the Following error while mamifycation.

Screenshots and logs:
Mamification failed: a (ILandroid/content/Intent;)V in com.tencent.android.tpush.XGPushActivity: inconsistent stack height -1
javassist.CannotCompileException: a (ILandroid/content/Intent;)V in com.tencent.android.tpush.XGPushActivity: inconsistent stack height -1
at javassist.expr.ExprEditor.doit(ExprEditor.java:117)
at javassist.CtClassType.instrument(CtClassType.java:1494)
at com.microsoft.intune.mam.BuildTimeMamifier.mamifyClass(BuildTimeMamifier.java:392)
at com.microsoft.intune.mam.BuildTimeMamifier.mamifyClasses(BuildTimeMamifier.java:161)
at com.microsoft.intune.mam.BuildTimeMamifier.mamify(BuildTimeMamifier.java:108)
at com.microsoft.intune.mam.MamifyTransformBase.transform(MamifyTransformBase.java:196)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:106)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:404)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:393)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:376)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:213)
at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:120)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:748)
Caused by: javassist.bytecode.BadBytecode: a (ILandroid/content/Intent;)V in com.tencent.android.tpush.XGPushActivity: inconsistent stack height -1
at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:111)
at javassist.bytecode.MethodInfo.rebuildStackMap(MethodInfo.java:456)
at javassist.bytecode.MethodInfo.rebuildStackMapIf6(MethodInfo.java:438)
at javassist.expr.ExprEditor.doit(ExprEditor.java:113)
... 104 more
Caused by: javassist.bytecode.BadBytecode: inconsistent stack height -1
at javassist.bytecode.stackmap.Tracer.doOpcode(Tracer.java:84)
at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:187)
at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:199)
at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:164)
at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:108)
... 107 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at javassist.bytecode.stackmap.Tracer.doOpcode54_95(Tracer.java:369)
at javassist.bytecode.stackmap.Tracer.doOpcode(Tracer.java:76)
... 112 more

Task :app:transformClassesWithMamifyTransformForDebug FAILED
Task :app:mergeDebugJavaResource

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:transformClassesWithMamifyTransformForDebug'.
com.android.build.api.transform.TransformException: com.microsoft.intune.mam.rewrite.RewriteException: javassist.CannotCompileException: a (ILandroid/content/Intent;)V in com.tencent.android.tpush.XGPushActivity: inconsistent stack height -1

Intune App SDK for Android (please complete the following information):

  • SDK Version : 6.0.0

MAMJobSchedulerHelper throws IllegalArgumentException

Describe the bug:
When using v6.5.3 of the SDK, our app sees errors logged from the MAM SDK.

E/MAMJobSchedulerHelper: Exception thrown when trying to submit an internal job.
    java.lang.IllegalArgumentException: Scheduled service ComponentInfo{com.example.myapp/com.microsoft.intune.mam.client.service.MAMBackgroundJobService} does not require android.permission.BIND_JOB_SERVICE permission
        at android.os.Parcel.createException(Parcel.java:2075)
        at android.os.Parcel.readException(Parcel.java:2039)
        at android.os.Parcel.readException(Parcel.java:1987)
        at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:308)
        at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:43)
        at com.microsoft.intune.mam.client.service.MAMJobSchedulerHelper.scheduleJob(MAMJobSchedulerHelper.java:152)
        at com.microsoft.intune.mam.client.service.MAMJobSchedulerHelper.submitFileEncryptionJobIfNeeded(MAMJobSchedulerHelper.java:145)
        at com.microsoft.intune.mam.client.fileencryption.FileEncryptionServiceBehavior.schedule(FileEncryptionServiceBehavior.java:282)
        at com.microsoft.intune.mam.client.fileencryption.FileEncryptionServiceBehavior.schedule(FileEncryptionServiceBehavior.java:250)
        at com.microsoft.intune.mam.client.fileencryption.FileEncryptionManager.initialize(FileEncryptionManager.java:375)
        at com.microsoft.intune.mam.client.ipcclient.MAMClientImpl.initialize(MAMClientImpl.java:272)
        at com.microsoft.intune.mam.client.ipcclient.MAMClientSingletonImpl.ensureInitialized(MAMClientSingletonImpl.java:73)
        at com.microsoft.intune.mam.client.app.ApplicationBehaviorImpl.attachBaseContext(ApplicationBehaviorImpl.java:98)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.microsoft.intune.mam.InterProxy$InterInvocationHandler.invoke(InterProxy.java:85)
        at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
        at $Proxy5.attachBaseContext(Unknown Source)
        at com.microsoft.intune.mam.client.app.MAMApplication$Impl.attachBaseContext(MAMApplication.java:92)
        at com.microsoft.intune.mam.client.app.MAMApplication.attachBaseContext(MAMApplication.java:43)
        at android.app.Application.attach(Application.java:351)
        at android.app.Instrumentation.newApplication(Instrumentation.java:1149)
        at android.app.LoadedApk.makeApplication(LoadedApk.java:1218)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6431)
        at android.app.ActivityThread.access$1300(ActivityThread.java:219)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
     Caused by: android.os.RemoteException: Remote stack trace:
        at com.android.server.job.JobSchedulerService$JobSchedulerStub.enforceValidJobRequest(JobSchedulerService.java:2673)
        at com.android.server.job.JobSchedulerService$JobSchedulerStub.schedule(JobSchedulerService.java:2728)
        at android.app.job.IJobScheduler$Stub.onTransact(IJobScheduler.java:153)
        at android.os.Binder.execTransactInternal(Binder.java:1021)
        at android.os.Binder.execTransact(Binder.java:994)

It is clear to me that MAM expects me to configure my AndroidManifest.xml to support this service, but the service is undocumented, and this expectation is undocumented. Developers should not be expected to reverse engineer SDK requirements.

Expected behavior:
At a minimum, I expect the docs to explain what the service is, and how to configure it. Really, the AAR should be published that has the manifest settings required, and the build tools will handle manifest merging.

Intune App SDK for Android (please complete the following information):

  • What version of the Intune SDK are you using? Are you using the latest version? 6.5.3, yes
  • What platform is your app based in?: Java
  • For errors post build, does the app launch without being Intune SDK integrated? Yes

Always retrieved Status NOT_LICENSED

Hi, Team

All components, libraries, etc. everything is set up according to the tutorial on Microsoft website. All users was licensed for use Intune api and etc. But in code always received status NOT_LICENSED:
Received MAM enrollment result for package "package", user 1784086532: NOT_LICENSED

User registered like:

   private void setupAdal() {

        mAuthenticationContext = new AuthenticationContext(this, AUTHORITY_URL,
                false);

        MAMEnrollmentManager mgr = MAMComponents.get(MAMEnrollmentManager.class);

        mgr.registerAuthenticationCallback(new MAMServiceAuthenticationCallback() {
            @Override
            public String acquireToken(String upn, String aadId, String resourceId) {
                return mAuthenticationResult.getAccessToken();
            }
        });

        mAuthenticationContext.acquireToken(this, getString(R.string.client_id), getString(R.string.client_id),
                REDIRECT_URL, "login_hint", PromptBehavior.Auto,
                "nux=1" + EXTRA_QP, new com.microsoft.aad.adal.AuthenticationCallback<com.microsoft.aad.adal.AuthenticationResult>() {
                    @Override
                    public void onSuccess(com.microsoft.aad.adal.AuthenticationResult result) {
                        mAuthenticationResult = result;
                        mgr.registerAccountForMAM(
                                result.getUserInfo().getDisplayableId(),
                                result.getUserInfo().getUserId(),
                                result.getTenantId()
                        );
                    }

                    @Override
                    public void onError(Exception exc) {

                    }
                });
    }

Logs:

AuthCallbackUtils: Calling app's acquireToken callback.
INTUNEย SDK: Calling app's acquireToken callback.
AuthCallbackUtils: App's acquireToken callback successfully returned a token.
INTUNEย SDK: App's acquireToken callback successfully returned a token.
neMAMServiceLookupCache: No MAM Service URL found in the cache for user [email protected]
INTUNEย SDK: No MAM Service URL found in the cache for user [email protected]
I/iceLookupOperationsImpl: using default FWLink value: http://go.microsoft.com/fwlink/?LinkID=533051&clcid=0x409
INTUNEย SDK: using default FWLink value: http://go.microsoft.com/fwlink/?LinkID=533051&clcid=0x409
iceLookupOperationsImpl: Retrieved lookup service URL: https://mam.manage.microsoft.com/api/Locations
INTUNEย SDK: Retrieved lookup service URL: https://mam.manage.microsoft.com/api/Locations
12-06 17:54:33.063 26120-26405/"package" I/iceLookupOperationsImpl: Querying lookup service with URL: https://mam.manage.microsoft.com/api/Locations activity id: {}
INTUNEย SDK: Querying lookup service with URL: https://mam.manage.microsoft.com/api/Locations activity id: {}
iceLookupOperationsImpl: Failed to get MAM service url from lookup service; activity id: {}; status = 401 Unauthorized
INTUNEย SDK: Failed to get MAM service url from lookup service; activity id: {}; status = 401 Unauthorized
AMEnrollmentStatusCache: Recording MAM service URL: null for: [email protected]
INTUNEย SDK: Recording MAM service URL: null for: 1784086532
MAMServiceLookupThread: failed to get a MAM Service URL
INTUNEย SDK: failed to get a MAM Service URL
AMEnrollmentStatusCache: Recording offline MAM enrollment result: NOT_LICENSED for identity [email protected]
INTUNEย SDK: Recording offline MAM enrollment result: NOT_LICENSED for identity 1784086532
MAMWEAccountRegistry: updating account [email protected] with status NOT_LICENSED
INTUNEย SDK: updating account 1784086532 with status NOT_LICENSED
MAMWERetryScheduler: scheduling MAM-WE enrollment retry in 24 hours for [email protected] with status NOT_LICENSED
INTUNEย SDK: scheduling MAM-WE enrollment retry in 24 hours for 1784086532 with status NOT_LICENSED
MAMWERetryScheduler: scheduling enrollment retry task for [email protected] due at 2017-12-07 17:54:33.
INTUNEย SDK: scheduling enrollment retry task for 1784086532 due at 2017-12-07 17:54:33.
MAMWERetryScheduler: task thread got 0 task(s) to execute.
INTUNEย SDK: task thread got 0 task(s) to execute.
MAMWERetryScheduler: task thread waiting for tasks.
INTUNEย SDK: task thread waiting for tasks.
entNotificationReceiver: Received MAM enrollment result for package "package", user [email protected]: NOT_LICENSED
INTUNEย SDK: Received MAM enrollment result for package "package", user 1784086532: NOT_LICENSED

Thank you!

Crashes in ToDo android app

Sudden crashes in ToDo android beta app (version: 7788).
Below are the attachments:

  1. Errors snapshot
    crash

  2. Crash report for one of the error instance
    report

Stacktrace
Caused by: java.lang.IllegalStateException:
at android.app.ContextImpl.getSharedPreferences (ContextImpl.java:485)
at android.app.ContextImpl.getSharedPreferences (ContextImpl.java:461)
at com.microsoft.intune.mam.policy.MAMEnrollmentStatusCache.getPrefs (MAMEnrollmentStatusCache.java:553)
at com.microsoft.intune.mam.policy.MAMEnrollmentStatusCache.isCompanyPortalRequired (MAMEnrollmentStatusCache.java:379)
at com.microsoft.intune.mam.client.app.MAMApplication$Impl.onCreate (MAMApplication.java:123)
at com.microsoft.intune.mam.client.app.MAMApplication.onCreate (MAMApplication.java:57)
at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1190)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6859)
at android.app.ActivityThread.access$1300 (ActivityThread.java:268)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1982)
at android.os.Handler.dispatchMessage (Handler.java:107)
at android.os.Looper.loop (Looper.java:237)
at android.app.ActivityThread.main (ActivityThread.java:7814)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1068)

Firebase Integration

I followed all steps to integrate Intune to my Android project, but when I start the app I got this error activating Firebase SDK:

java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object com.microsoft.intune.mam.client.ComponentsContainer.get(java.lang.Class)' on a null object reference
at android.app.ActivityThread.installProvider(ActivityThread.java:6643)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6185)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6100)
at android.app.ActivityThread.access$1200(ActivityThread.java:213)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1807)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6923)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)
Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object com.microsoft.intune.mam.client.ComponentsContainer.get(java.lang.Class)' on a null object reference
at com.microsoft.intune.mam.client.InterfaceComponentsAccess.get(InterfaceComponentsAccess.java:30)
at com.microsoft.intune.mam.client.CachedBehaviorProvider.get(CachedBehaviorProvider.java:33)
at com.microsoft.intune.mam.client.content.pm.MAMPackageManagement.getBehavior(MAMPackageManagement.java:409)
at com.microsoft.intune.mam.client.content.pm.MAMPackageManagement.getServiceInfo(MAMPackageManagement.java:298)
at com.google.firebase.components.ComponentDiscovery$MetadataRegistrarNameRetriever.getMetadata(com.google.firebase:firebase-common@@17.1.0:131)
at com.google.firebase.components.ComponentDiscovery$MetadataRegistrarNameRetriever.retrieve(com.google.firebase:firebase-common@@17.1.0:106)
at com.google.firebase.components.ComponentDiscovery$MetadataRegistrarNameRetriever.retrieve(com.google.firebase:firebase-common@@17.1.0:102)
at com.google.firebase.components.ComponentDiscovery.discover(com.google.firebase:firebase-common@@17.1.0:71)
at com.google.firebase.FirebaseApp.(com.google.firebase:firebase-common@@17.1.0:411)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@17.1.0:306)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@17.1.0:273)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@17.1.0:257)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(com.google.firebase:firebase-common@@17.1.0:53)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1919)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1894)
at com.microsoft.intune.mam.client.content.MAMContentProvider.attachInfoReal(MAMContentProvider.java:142)
at com.microsoft.intune.mam.client.app.offline.OfflineContentProviderBehavior.attachInfoMAM(OfflineContentProviderBehavior.java:151)
at com.microsoft.intune.mam.client.content.MAMContentProvider.attachInfoMAM(MAMContentProvider.java:242)
at com.google.firebase.provider.FirebaseInitProvider.attachInfoMAM(com.google.firebase:firebase-common@@17.1.0:47)
at com.microsoft.intune.mam.client.app.offline.OfflineContentProviderBehavior.attachInfo(OfflineContentProviderBehavior.java:43)
at com.microsoft.intune.mam.client.content.MAMContentProvider.attachInfo(MAMContentProvider.java:50)
at android.app.ActivityThread.installProvider(ActivityThread.java:6638)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6185)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6100)
at android.app.ActivityThread.access$1200(ActivityThread.java:213)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1807)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6923)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)

Any clue on how to fix this issue?

java.lang.NullPointerException: Attempt to get length of null array

Caused by: java.lang.NullPointerException: Attempt to get length of null array
at com.microsoft.intune.mam.client.app.WrappedAppReflectionUtilsBehaviorImpl.parametersToString(WrappedAppReflectionUtilsBehaviorImpl.java:190)
at com.microsoft.intune.mam.client.app.WrappedAppReflectionUtilsBehaviorImpl.getMethod(WrappedAppReflectionUtilsBehaviorImpl.java:78)
at java.lang.reflect.Method.invoke(Native Method)
at com.microsoft.intune.mam.InterProxy$InterInvocationHandler.invoke(InterProxy.java:72)
at java.lang.reflect.Proxy.invoke(Proxy.java:393)
at $Proxy16.getMethod(Unknown Source)
at com.microsoft.intune.mam.client.app.WrappedAppReflectionUtils.getMethod(WrappedAppReflectionUtils.java:98)
at com.google.android.exoplayer2.audio.AudioTrack.(AudioTrack.java:314)
at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.(MediaCodecAudioRenderer.java:133)

///////////////////////////////////////////////////////////////////////////////////

//code from exoplayer

///////////////////////////////////////////////////////////////////////////////////
public AudioTrack(AudioCapabilities audioCapabilities, Listener listener) {
this.audioCapabilities = audioCapabilities;
this.listener = listener;
releasingConditionVariable = new ConditionVariable(true);
if (Util.SDK_INT >= 18) {
try {
getLatencyMethod =
android.media.AudioTrack.class.getMethod("getLatency", (Class<?>[]) null); // crash log at com.google.android.exoplayer2.audio.AudioTrack.(AudioTrack.java:314)
} catch (NoSuchMethodException e) {
// There's no guarantee this method exists. Do nothing.
}
}
if (Util.SDK_INT >= 23) {
audioTrackUtil = new AudioTrackUtilV23();
} else if (Util.SDK_INT >= 19) {
audioTrackUtil = new AudioTrackUtilV19();
} else {
audioTrackUtil = new AudioTrackUtil();
}
playheadOffsets = new long[MAX_PLAYHEAD_OFFSET_COUNT];
volume = 1.0f;
startMediaTimeState = START_NOT_SET;
streamType = C.STREAM_TYPE_DEFAULT;
}

I encountered a bug when I played a video on a app with intune wrapped .The log show as above. Can you help me to fix it ? Thanks anyway.

Cannot get MAMEnrollmentManager object

According to the dev guide, we need to get the MAMEnrollmentManager obj by the following code,
MAMEnrollmentManager mgr = MAMComponents.get(MAMEnrollmentManager.class); //Always get Null...

But i always got Null. can i know the reason? am i missing anything?
Is there any sample code to show how MAM SDK work? thx

Code attached.

package com.oocl.mamstudy;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;

import com.microsoft.intune.mam.client.app.MAMComponents;
import com.microsoft.intune.mam.client.support.v7.app.MAMActionBarActivity;
import com.microsoft.intune.mam.policy.AppPolicy;
import com.microsoft.intune.mam.policy.MAMEnrollmentManager;

public class MainActivity extends MAMActionBarActivity {
    private static final String TAG = "MainActivity";
    public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";


    @Override
    public void onMAMCreate(Bundle savedInstanceState) {
        AppPolicy policy = MAMComponents.get(AppPolicy.class);
        if(policy == null)
            Log.v(TAG, "AppPolicy is null");
        MAMEnrollmentManager mgr = MAMComponents.get(MAMEnrollmentManager.class); //Always get Null...
        if(mgr == null) {
            Log.v(TAG, "MAMEnrollmentManager is null");
        }



        super.onMAMCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


    }

    public void sendMessage(View view) {
        Log.v(TAG, "clicked");
        Intent intent = new Intent(this, DisplayMessageActivity.class);
        EditText editText = (EditText) findViewById(R.id.editText);
        String message = editText.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
        startActivity(intent);
    }
}

android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference

Hi, is there any working sample on this library? The iOS SDK was integrated just fine, but the Android SDK fails to get the Primary User.
When calling this method:

MAMUserInfo info = MAMComponents.get(MAMUserInfo.class); if (info != null) return info.getPrimaryUser();

The error is:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference

All components, libraries, etc. everything is set up according to the tutorial on Microsoft website https://docs.microsoft.com/en-us/intune/app-sdk-android

Thank you

Need login twice for Intune and internal APP

Hello, our company's APP is provided by Intune for internal employees of the company. After logging in through the Intune, download and install, but the employees report that they need to log in twice on the Intune and our internal used app during the use process. Ask if there are any login authorization schemes that can simplify this operation?
Login the Intune and our internal APP both used office365 account, and our authorization part used OAuth.

Adding Microsoft.Intune.MAM.Xamarin.Android nuget package to Xamarin Forms Android app fails

Adding Microsoft.Intune.MAM.Xamarin.Android nuget package to Xamarin Forms Android project fails with the following error:
NU1202: Package Microsoft.Intune.MAM.Xamarin.Android 3.0.3989.3 is not compatible with monoandroid81 (MonoAndroid,Version=v8.1). Package Microsoft.Intune.MAM.Xamarin.Android 3.0.3989.3 supports: net452xamarinandroid10 (net452+Xamarin.Android10,Version=v0.0)
Package restore failed. Rolling back package changes for 'IntuneSDKSample.Android'.

VS version: 15.6.6
Adding package fails both with Shared and .NET Standard project templates.

APP-WE Policy didn't apply after registerAccountForMAM called.

We are integrating our LOB app with Intune APP-WE. After we successfully acquire token from ADAL. We call registerAccountForMAM to register MAM and acquire APP-WE policy. The policy is then being downloaded and the status of enrollment is success.

However the policy didn't apply immediately. It didn't prompt user to set PIN that required in the policy.

When will the policy apply after being download? Are there any API can force applying policy immediately?

On iOS it stated in the documentation that it require the app to force restart in order to apply policy. But there is no such information in Android documentation?

COMPANY_PORTAL_REQUIRED

I'm trying out the Taskr demo app by changing client_id to native app in my aad. However, after login is completed, it always gives COMPANY_PORTAL_REQUIRED alert even though company portal is installed in the phone.

Im using Android Studio 3.2, Gradle version: 3.2.0-rc02.
Changed compileSdkVersion and targetSdkVersion to 28 in place of 27.

App ANRs when InTune Company Portal is installed

I am working on rebuilding an old project, updating it to use the newest tools from Google. It has been completely written in Kotlin. I have installed the SDK as per the developers guide (using MAM gradle plugin). When I install our app onto a device WITHOUT inTune Company Portal App, the app launches and functions fine... WITH inTune Company Portal installed, the our app ANRs on launch. There is nothing useful in the logs. I can see that the our app is talking to the company portal app but then all of a sudden the logs stop... no crashes/errors/warnings (Attached Below).

To Reproduce
Steps to reproduce the behavior:

  1. Install app WITHOUT Company Portal -> observe app functions fine
  2. Install app WITH Company Portal -> observe app freezes/ANR

Expected behavior:
App should launch as normal

Smartphone (please complete the following information):

  • Device: Google Pixel, OnePlus 6, Samsung S7
  • OS: Android 10, 9, 8, 7

Intune App SDK for Android (please complete the following information):

  • What version of the Intune SDK are you using? Are you using the latest version? -> 6.3.0
  • What platform is your app based in (Java, Xamarin based, Cordova, etc)? -> Kotlin, AndroidX, RealmDB
  • For errors during build, does the app build without Intune SDK integration? YES
  • For errors post build, does the app launch without being Intune SDK integrated? YES
  • Do you see a trend with it only being reproduced on a specific device? NO, Repro on all devices

Screenshots and logs:

  • If your app is experiencing an issue post build, do you have app logs for the crash itself?

2020-02-25 11:16:47.720 25515-25515/com.myapp.droid.phone.intune I/id.phone.intun: The ClassLoaderContext is a special shared library.
2020-02-25 11:16:48.500 25515-25515/com.myapp.droid.phone.intune I/MAMInfo: Agent config file does not exist
2020-02-25 11:16:48.501 25515-25515/com.myapp.droid.phone.intune I/MAMInfo: MAMInfo initialized. Debug=true, Agent=PRODUCTION, ManagedDialogDisabled=false, DeprecationDialogDisabled=false, PolicyRequired=false, MultiIdentityEnabled=false, FullBackupContent=true, UseDefaultEnrollment=false, ExceptionOnInit=false, Debuggable=true
2020-02-25 11:16:48.514 25515-25515/com.myapp.droid.phone.intune W/Signatures: Signature check disabled due to testOnly flag or developer build flag.
2020-02-25 11:16:48.531 25515-25515/com.myapp.droid.phone.intune I/MAMInfo: Agent config file does not exist
2020-02-25 11:16:48.532 25515-25515/com.myapp.droid.phone.intune I/MAMInfo: MAMInfo initialized. Debug=true, Agent=PRODUCTION, ManagedDialogDisabled=false, DeprecationDialogDisabled=false, PolicyRequired=false, MultiIdentityEnabled=false, FullBackupContent=true, UseDefaultEnrollment=false, ExceptionOnInit=false, Debuggable=true
2020-02-25 11:16:48.540 25515-25515/com.myapp.droid.phone.intune W/Signatures: Signature check disabled due to testOnly flag or developer build flag.
2020-02-25 11:16:48.583 25515-25515/com.myapp.droid.phone.intune I/mam: User-set log level is VERBOSE
2020-02-25 11:16:48.595 25515-25515/com.myapp.droid.phone.intune I/MAMComponents: SDK is [0] releases ahead of agent.
2020-02-25 11:16:48.596 25515-25515/com.myapp.droid.phone.intune I/MAMComponents: Initializing MAM classes with the MDM package: com.microsoft.windowsintune.companyportal
2020-02-25 11:16:48.596 25515-25515/com.myapp.droid.phone.intune D/MAMComponents: Initialize done
2020-02-25 11:16:48.614 25515-25577/com.myapp.droid.phone.intune I/MAMWERetrySchedulerImpl: task thread waiting for tasks.
2020-02-25 11:16:48.616 25515-25515/com.myapp.droid.phone.intune I/NativeLibUnpacker: Trying to delete lib file /data/user/0/com.myapp.droid.phone.intune/mam_libs/arm64-v8a/libmsmam-pre.so
2020-02-25 11:16:48.617 25515-25515/com.myapp.droid.phone.intune I/NativeLibUnpacker: Unpacking native library msmam-pre for abi: arm64-v8a in /data/user/0/com.myapp.droid.phone.intune/mam_libs
2020-02-25 11:16:48.626 25515-25515/com.myapp.droid.phone.intune W/id.phone.intune: type=1400 audit(0.0:89): avc: granted { execute } for path="/data/data/com.myapp.droid.phone.intune/mam_libs/arm64-v8a/libmsmam-pre.so" dev="sda35" ino=787290 scontext=u:r:untrusted_app_27:s0:c0,c257,c512,c768 tcontext=u:object_r:app_data_file:s0:c0,c257,c512,c768 tclass=file
2020-02-25 11:16:48.632 25515-25515/com.myapp.droid.phone.intune I/NativeLibLoaderBase: Libhoudini is not in use
2020-02-25 11:16:48.632 25515-25515/com.myapp.droid.phone.intune I/NativeLibLoaderBase: Using preferred ABI arm64-v8a
2020-02-25 11:16:48.634 25515-25515/com.myapp.droid.phone.intune I/NativeLibUnpacker: Trying to delete lib file /data/user/0/com.myapp.droid.phone.intune/mam_libs/arm64-v8a/libunwind.so
2020-02-25 11:16:48.634 25515-25515/com.myapp.droid.phone.intune I/NativeLibUnpacker: Unpacking native library unwind for abi: arm64-v8a in /data/user/0/com.myapp.droid.phone.intune/mam_libs
2020-02-25 11:16:48.643 25515-25515/com.myapp.droid.phone.intune W/id.phone.intune: type=1400 audit(0.0:90): avc: granted { execute } for path="/data/data/com.myapp.droid.phone.intune/mam_libs/arm64-v8a/libunwind.so" dev="sda35" ino=787196 scontext=u:r:untrusted_app_27:s0:c0,c257,c512,c768 tcontext=u:object_r:app_data_file:s0:c0,c257,c512,c768 tclass=file
2020-02-25 11:16:48.647 25515-25515/com.myapp.droid.phone.intune I/NativeLibLoaderBase: loaded libunwind
2020-02-25 11:16:48.648 25515-25515/com.myapp.droid.phone.intune I/NativeLibUnpacker: Trying to delete lib file /data/user/0/com.myapp.droid.phone.intune/mam_libs/arm64-v8a/libcrypto.1.0.0.so
2020-02-25 11:16:48.648 25515-25515/com.myapp.droid.phone.intune I/NativeLibUnpacker: Unpacking native library crypto.1.0.0 for abi: arm64-v8a in /data/user/0/com.myapp.droid.phone.intune/mam_libs
2020-02-25 11:16:48.750 25515-25515/com.myapp.droid.phone.intune W/id.phone.intune: type=1400 audit(0.0:91): avc: granted { execute } for path="/data/data/com.myapp.droid.phone.intune/mam_libs/arm64-v8a/libcrypto.1.0.0.so" dev="sda35" ino=787307 scontext=u:r:untrusted_app_27:s0:c0,c257,c512,c768 tcontext=u:object_r:app_data_file:s0:c0,c257,c512,c768 tclass=file
2020-02-25 11:16:48.756 25515-25515/com.myapp.droid.phone.intune I/NativeLibUnpacker: Trying to delete lib file /data/user/0/com.myapp.droid.phone.intune/mam_libs/arm64-v8a/libmsmdmarp.so
2020-02-25 11:16:48.757 25515-25515/com.myapp.droid.phone.intune I/NativeLibUnpacker: Unpacking native library msmdmarp for abi: arm64-v8a in /data/user/0/com.myapp.droid.phone.intune/mam_libs
2020-02-25 11:16:48.786 25515-25515/com.myapp.droid.phone.intune W/id.phone.intune: type=1400 audit(0.0:92): avc: granted { execute } for path="/data/data/com.myapp.droid.phone.intune/mam_libs/arm64-v8a/libmsmdmarp.so" dev="sda35" ino=787309 scontext=u:r:untrusted_app_27:s0:c0,c257,c512,c768 tcontext=u:object_r:app_data_file:s0:c0,c257,c512,c768 tclass=file
2020-02-25 11:16:48.794 25515-25515/com.myapp.droid.phone.intune I/MAMClientImpl: Running on Android API level29
2020-02-25 11:16:48.795 25515-25515/com.myapp.droid.phone.intune I/MAMClientImpl: Running on device Google Pixel
2020-02-25 11:16:48.796 25515-25515/com.myapp.droid.phone.intune I/MAMClientImpl: Using agent build 5.0.4700.0 (3935925)
2020-02-25 11:16:48.797 25515-25515/com.myapp.droid.phone.intune I/MAMClientImpl: App is using MAM SDK version 6.3.0
2020-02-25 11:16:48.812 25515-25515/com.myapp.droid.phone.intune I/FileEncryptionManager: Not enabling encryption cache
2020-02-25 11:16:48.829 25515-25580/com.myapp.droid.phone.intune W/Native: Automatically treating /apex/com.android.runtime/lib64/bionic/libc.so as system libc
2020-02-25 11:16:48.830 25515-25515/com.myapp.droid.phone.intune W/id.phone.intune: type=1400 audit(0.0:93): avc: denied { getattr } for path="/persist" dev="sdd3" ino=2 scontext=u:r:untrusted_app_27:s0:c0,c257,c512,c768 tcontext=u:object_r:persist_file:s0 tclass=dir permissive=0
2020-02-25 11:16:48.835 25515-25581/com.myapp.droid.phone.intune I/Native: Initializing FIPS on a background thread.
2020-02-25 11:16:48.865 25515-25584/com.myapp.droid.phone.intune I/Native: FIPS mode enabled
2020-02-25 11:16:48.867 25515-25584/com.myapp.droid.phone.intune I/Native: Initializing FIPS took 27684 us
2020-02-25 11:16:48.868 25515-25515/com.myapp.droid.phone.intune W/SQLiteCompatibilityWalFlags: Cannot read global setting sqlite_compatibility_wal_flags - Application state not available
2020-02-25 11:16:48.869 25515-25584/com.myapp.droid.phone.intune I/Native: File encryption hooks installed
2020-02-25 11:16:48.919 25515-25515/com.myapp.droid.phone.intune D/MAMJobSchedulerHelper: submitFileEncryptionJobIfNeeded with operation = POST_INIT
2020-02-25 11:16:48.925 25515-25515/com.myapp.droid.phone.intune I/MAMJobSchedulerHelper: Job submission succeeded. Job ID = 1401540335, operation = POST_INIT
2020-02-25 11:16:48.926 25515-25515/com.myapp.droid.phone.intune D/MAMClientImpl: Trying to update MDM policy
2020-02-25 11:16:48.931 25515-25515/com.myapp.droid.phone.intune D/MAMClientImpl: Starting update of app policy
2020-02-25 11:16:48.937 25515-25515/com.myapp.droid.phone.intune I/MAMClientImpl: Received policy null for package com.myapp.droid.phone.intune
2020-02-25 11:16:48.938 25515-25515/com.myapp.droid.phone.intune D/MAMClientImpl: This is the initial policy update
2020-02-25 11:16:48.939 25515-25515/com.myapp.droid.phone.intune D/MAMClientPolicyImpl: InternalAppPolicy is null
2020-02-25 11:16:48.960 25515-25515/com.myapp.droid.phone.intune D/MAMClientPolicyImpl: InternalAppPolicy is null
2020-02-25 11:16:48.960 25515-25515/com.myapp.droid.phone.intune I/eEncryptionKeyCacheImpl: Clearing cached keys
2020-02-25 11:16:48.961 25515-25515/com.myapp.droid.phone.intune I/MAMClientImpl: First launch after package added, calling onMAMAppInstall.
2020-02-25 11:16:48.962 25515-25515/com.myapp.droid.phone.intune I/LocalSettings: Setting HasNotifiedAgentFirstLaunch.
2020-02-25 11:16:48.975 25515-25515/com.myapp.droid.phone.intune D/MAMApplication: RETURN
2020-02-25 11:16:48.978 25515-25585/com.myapp.droid.phone.intune I/LocalSettings: Setting HasNotifiedAgentFirstLaunch.
2020-02-25 11:16:48.997 25515-25515/com.myapp.droid.phone.intune I/MAMContext: Not proxying package manager for Android P
2020-02-25 11:16:49.055 25515-25515/com.myapp.droid.phone.intune D/MAMClientPolicyImpl: InternalAppPolicy is null
2020-02-25 11:16:49.056 25515-25515/com.myapp.droid.phone.intune I/MAMContext: Not proxying package manager for Android P
2020-02-25 11:16:49.107 25515-25515/com.myapp.droid.phone.intune V/FA: Registered activity lifecycle callback
2020-02-25 11:16:49.143 25515-25515/com.myapp.droid.phone.intune I/FirebaseCrashlytics: Initializing Crashlytics 17.0.0-beta01
2020-02-25 11:16:49.160 25515-25515/com.myapp.droid.phone.intune I/FirebaseInitProvider: FirebaseApp initialization successful
2020-02-25 11:16:49.214 25515-25515/com.myapp.droid.phone.intune D/MAMApplication: ENTRY
2020-02-25 11:16:49.224 25515-25515/com.myapp.droid.phone.intune D/ADALUtils: Setting internal ADAL setting for skip broker to true based on manifest
2020-02-25 11:16:49.368 25515-25593/com.myapp.droid.phone.intune V/FA: App measurement collection enabled
2020-02-25 11:16:49.370 25515-25593/com.myapp.droid.phone.intune V/FA: App measurement enabled for app package, google app id: com.myapp.droid.phone.intune, 1:833506986647:android:8155f58009be2e7408b7d2
2020-02-25 11:16:49.374 25515-25593/com.myapp.droid.phone.intune I/FA: App measurement initialized, version: 21028
2020-02-25 11:16:49.374 25515-25593/com.myapp.droid.phone.intune I/FA: To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
2020-02-25 11:16:49.374 25515-25593/com.myapp.droid.phone.intune I/FA: To enable faster debug mode event logging run:
adb shell setprop debug.firebase.analytics.app com.myapp.droid.phone.intune
2020-02-25 11:16:49.374 25515-25593/com.myapp.droid.phone.intune D/FA: Debug-level message logging enabled
2020-02-25 11:16:49.375 25515-25593/com.myapp.droid.phone.intune V/FA: Persisting first open: 1582647409086
2020-02-25 11:16:49.391 25515-25593/com.myapp.droid.phone.intune V/FA: App measurement setting deferred collection: false
2020-02-25 11:16:49.516 25515-25515/com.myapp.droid.phone.intune D/MAMApplication: RETURN
2020-02-25 11:16:49.520 25515-25606/com.myapp.droid.phone.intune I/MAMWERetrySchedulerImpl: scheduling any necessary enrollment retries at startup; online: true
2020-02-25 11:16:49.558 25515-25515/com.myapp.droid.phone.intune D/MAMActivity: ENTRY
2020-02-25 11:16:49.575 25515-25515/com.myapp.droid.phone.intune I/ActivityBehaviorImpl: No MAMAppCompatActivity class in app.
2020-02-25 11:16:49.575 25515-25515/com.myapp.droid.phone.intune D/MAMActivity: RETURN
2020-02-25 11:16:49.600 25515-25515/com.myapp.droid.phone.intune I/MAMContext: Not proxying package manager for Android P
2020-02-25 11:16:49.609 25515-25515/com.myapp.droid.phone.intune D/MAMActivity: ENTRY
2020-02-25 11:16:49.610 25515-25515/com.myapp.droid.phone.intune D/ActivityBehaviorImpl: class com.myapp.mobile.MainActivity start onCreate
2020-02-25 11:16:49.614 25515-25515/com.myapp.droid.phone.intune I/HeartbeatThread: added heartbeat event to queue.
2020-02-25 11:16:49.615 25515-25515/com.myapp.droid.phone.intune I/HeartbeatThread: Starting heartbeat thread.
2020-02-25 11:16:49.617 25515-25515/com.myapp.droid.phone.intune I/ActivityBehaviorImpl: Checking conditional launch for *
2020-02-25 11:16:49.618 25515-25515/com.myapp.droid.phone.intune D/MAMClientPolicyImpl: InternalAppPolicy is null
2020-02-25 11:16:49.619 25515-25515/com.myapp.droid.phone.intune D/MAMClientPolicyImpl: InternalAppPolicy is null
2020-02-25 11:16:49.623 25515-25612/com.myapp.droid.phone.intune I/HeartbeatThread: sending heartbeat for package: com.myapp.droid.phone.intune
2020-02-25 11:16:49.631 25515-25515/com.myapp.droid.phone.intune D/MAMActivity: ENTRY
2020-02-25 11:16:49.632 25515-25515/com.myapp.droid.phone.intune V/FA: onActivityCreated
2020-02-25 11:16:49.640 25515-25515/com.myapp.droid.phone.intune D/MAMActivity: RETURN
2020-02-25 11:16:49.681 25515-25515/com.myapp.droid.phone.intune W/id.phone.intun: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
2020-02-25 11:16:49.681 25515-25515/com.myapp.droid.phone.intune W/id.phone.intun: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
2020-02-25 11:16:49.774 25515-25614/com.myapp.droid.phone.intune D/MAMClientPolicyImpl: InternalAppPolicy is null
2020-02-25 11:16:49.778 25515-25614/com.myapp.droid.phone.intune I/EgressTagRule: Recursively tagging intent <action=com.google.android.c2dm.intent.REGISTER, type=null, data=> with identity *
2020-02-25 11:16:49.782 25515-25593/com.myapp.droid.phone.intune V/FA: Checking service availability
2020-02-25 11:16:49.795 25515-25593/com.myapp.droid.phone.intune V/FA: Service available
2020-02-25 11:16:49.800 25515-25593/com.myapp.droid.phone.intune V/FA: Connecting to remote service
2020-02-25 11:16:49.806 25515-25593/com.myapp.droid.phone.intune D/MAMClientPolicyImpl: InternalAppPolicy is null
2020-02-25 11:16:49.809 25515-25593/com.myapp.droid.phone.intune I/EgressTagRule: Recursively tagging intent <action=com.google.android.gms.measurement.START, type=null, data=> with identity *
2020-02-25 11:16:49.815 25515-25593/com.myapp.droid.phone.intune V/FA: Detected application was in foreground
2020-02-25 11:16:49.822 25515-25593/com.myapp.droid.phone.intune V/FA: Session started, time: 5955065
2020-02-25 11:16:49.908 25515-25593/com.myapp.droid.phone.intune V/FA: Connection attempt already in progress
2020-02-25 11:16:49.915 25515-25593/com.myapp.droid.phone.intune I/FA: Tag Manager is not found and thus will not be used
2020-02-25 11:16:49.956 25515-25593/com.myapp.droid.phone.intune V/FA: Connection attempt already in progress
2020-02-25 11:16:49.974 25515-25593/com.myapp.droid.phone.intune V/FA: Connection attempt already in progress

Cannot include jar files

Hi,

Can anyone please help with including the jar libraries to Android project? I cannot include any of them. The error is:
Error:error reading path/to/android/libs/Microsoft.Intune.MAM.SDK.Support.v4.jar; error in opening zip file
Error:Execution failed for task ':compileDebugJavaWithJavac'. Could not expand ZIP 'path/to/android/libs/Microsoft.Intune.MAM.SDK.Support.v4.jar'.

I tried several gradle versions and differed JDK versions. Still the same error.

Issue with SSO login with Intune SDK integrated native IOS and Android Apps

Getting exception as
I/AuthManager: Exception : The base64 url encoded signature component of the redirect uri does not match the expected value. Type: com.microsoft.aad.adal.cl

Using Intune SDK and ADAL lib to build intune SDK integrated native Android app and It works fine if we login to app without SSO.
Now Trying to implement SSO login as Microsoft document says in below link:
https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-v1-enable-sso-android
But it doesnt work and getting exception as above.

I need solution urgently, Please let me know if anyone can help or we can discuss about the freelancing charges if needed.

I can provide code snippet if required . I am using Taskr sample application as a test application which link given below :
https://github.com/msintuneappsdk/Taskr-Sample-Intune-Android-App

app crashes when running unregisterAccountForMAM

Describe the bug:
When I unregister my account with unregisterAccountForMAM() the application crashes from what I do believe is from a background service (WorkplaceJoinManagerService).

To Reproduce

  • do a successful enrollement with: MAMComponents.get(MAMEnrollmentManager.class).registerAccountForMAM(...)
  • run: MAMComponents.get(MAMEnrollmentManager.class).unregisterAccountForMAM("[email protected]");

Expected behavior:
I would expect the app to be unregistered.

logs:
2020-05-14 14:01:16.682 6589-8756/? E/JavaBinder: *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
java.lang.RuntimeException: android.os.RemoteException: Unable to get WPJ device id
at android.os.Parcel.writeException(Parcel.java:1882)
at android.os.Binder.execTransact(Binder.java:710)
Caused by: android.os.RemoteException: Unable to get WPJ device id
at com.microsoft.windowsintune.companyportal.workplace.WorkplaceJoinManagerService$WPJManagerBinder.getDeviceId(WorkplaceJoinManagerService.java:90)
at com.microsoft.intune.companyportal.workplace.IWPJManagerService$Stub.onTransact(IWPJManagerService.java:51)
at android.os.Binder.execTransact(Binder.java:697)

Smartphone (please complete the following information):

  • Android emulator (API 27,

Intune App SDK for Android :

  • Intune 6.5.3
  • Platform: Java, Flutter, Android compile SDK 28, Android targetSdk 27, minSdk 16

Cannot build app using the gradle plugin - NPE crash

I'm trying to integrate the intune sdk into an app, following the steps documented here, and using the sample project as a reference.

However, I'm getting the following error when attempting to build the app (assembleDebug gradle task).

Mamification failed: null
java.lang.NullPointerException
        at com.microsoft.intune.mam.BuildTimeMamifier.mamifyClass(BuildTimeMamifier.java:378)
        at com.microsoft.intune.mam.BuildTimeMamifier.mamifyClasses(BuildTimeMamifier.java:190)
        at com.microsoft.intune.mam.BuildTimeMamifier.mamify(BuildTimeMamifier.java:108)
        at com.microsoft.intune.mam.MamifyTransformBase.transform(MamifyTransformBase.java:196)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:284)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:247)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:106)
        at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:242)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
        at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:47)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:42)
        at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:568)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:553)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:536)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:109)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:276)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:265)
        at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
        at java.util.Optional.map(Optional.java:215)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:63)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34)
        at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43)
        at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
        at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
        at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
        at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38)
        at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
        at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:153)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:67)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:41)
        at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44)
        at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85)
        at java.util.Optional.map(Optional.java:215)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
        at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79)
        at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53)
        at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78)
        at java.util.Optional.orElseGet(Optional.java:267)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
        at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:192)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:184)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
        at java.lang.Thread.run(Thread.java:748)

> Task :mobile:transformClassesWithMamifyTransformForMdmDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':mobile:transformClassesWithMamifyTransformForMdmDebug'.
> java.lang.NullPointerException (no error message)

I'm using a separate flavor of the app to test, called 'mdm', which you can see in the gradle task log. I've added the plugin to my gradle files exactly like the sample project, and added androidx.* to the "include external libs" config.

As you can see, the exception is empty so I can't figure out what's wrong by looking at the build log, could you advise on how I can fix this?

Exception in aquireTokenSilent. Need to do SSO login in android app.

getting exception as
/AuthManager: Exception : Request authority:https://login.microsoftonline.com/common clientid:d59c622f-c25f-4e01-bbd6-62446403b678 No result returned from acquireTokenSilent

I am using taskr Intune sample application for android to achieve SSO login using Company portal app but getting above exception.

Thanks in Advance for your help.
Please let me know if any code snippet is needed . Taskr sample application is available in below link :
https://github.com/msintuneappsdk/Taskr-Sample-Intune-Android-App

Not compatible with Android Gradle plugin 3.3.0

When trying to build an app using Android Gradle plugin v3.3.0 and Gradle v4.10.1, the following error occurs:

ERROR: class "com.microsoft.intune.mam.MamifyConfiguration_Decorated"'s signer information does not match signer information of other classes in the same package

The same app compiles fine with Gradle plugin v3.2.1 and Gradle v4.6.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.