recognizegroup / capacitor-plugin-msauth

Capacitor-wrapper for MSAL libraries. Works on iOS, Android and web.
Other
17 stars 17 forks source link

Getting java.lang.reflect.InvocationTargetException error for Android while Integrating capacitor-plugin-msauth #27

Open prabhakar1994 opened 9 months ago

prabhakar1994 commented 9 months ago
Serious error executing plugin
                                                                                                    java.lang.reflect.InvocationTargetException
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:138)
                                                                                                        at com.getcapacitor.Bridge.lambda$callPluginMethod$0(Bridge.java:774)
                                                                                                        at com.getcapacitor.Bridge.$r8$lambda$ehFTi5f4HhVNFKTbCKAYDkpQYRA(Unknown Source:0)
                                                                                                        at com.getcapacitor.Bridge$$ExternalSyntheticLambda3.run(Unknown Source:8)
                                                                                                        at android.os.Handler.handleCallback(Handler.java:938)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loop(Looper.java:257)
                                                                                                        at android.os.HandlerThread.run(HandlerThread.java:67)
                                                                                                    Caused by: java.lang.NoSuchMethodError: No virtual method getDefaultAuthority()Lcom/microsoft/identity/common/internal/authorities/Authority; in class Lcom/microsoft/identity/client/PublicClientApplicationConfiguration; or its super classes (declaration of 'com.microsoft.identity.client.PublicClientApplicationConfiguration' appears in /data/app/~~lPyURG7LHldHTWnTMMgiVQ==/com.******.app-SZZPgiX_-Ppoiam_J7UsQg==/base.apk)
                                                                                                        at nl.recognize.msauthplugin.MsAuthPlugin.getAuthorityUrl(MsAuthPlugin.java:114)
                                                                                                        at nl.recognize.msauthplugin.MsAuthPlugin.acquireToken(MsAuthPlugin.java:159)
                                                                                                        at nl.recognize.msauthplugin.MsAuthPlugin.login(MsAuthPlugin.java:56)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                        at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:138) 
                                                                                                        at com.getcapacitor.Bridge.lambda$callPluginMethod$0(Bridge.java:774) 
                                                                                                        at com.getcapacitor.Bridge.$r8$lambda$ehFTi5f4HhVNFKTbCKAYDkpQYRA(Unknown Source:0) 
                                                                                                        at com.getcapacitor.Bridge$$ExternalSyntheticLambda3.run(Unknown Source:8) 
                                                                                                        at android.os.Handler.handleCallback(Handler.java:938) 
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                                                        at android.os.Looper.loop(Looper.java:257) 
                                                                                                        at android.os.HandlerThread.run(HandlerThread.java:67) 
2023-08-09 11:37:54.045  2111-2570  AndroidRuntime          com.*****.app                     E  FATAL EXCEPTION: CapacitorPlugins
                                                                                                    Process: com.*****.app, PID: 2111
                                                                                                    java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
                                                                                                        at com.getcapacitor.Bridge.lambda$callPluginMethod$0(Bridge.java:783)
                                                                                                        at com.getcapacitor.Bridge.$r8$lambda$ehFTi5f4HhVNFKTbCKAYDkpQYRA(Unknown Source:0)
                                                                                                        at com.getcapacitor.Bridge$$ExternalSyntheticLambda3.run(Unknown Source:8)
                                                                                                        at android.os.Handler.handleCallback(Handler.java:938)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loop(Looper.java:257)
                                                                                                        at android.os.HandlerThread.run(HandlerThread.java:67)
                                                                                                    Caused by: java.lang.reflect.InvocationTargetException
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:138)
                                                                                                        at com.getcapacitor.Bridge.lambda$callPluginMethod$0(Bridge.java:774)
                                                                                                        at com.getcapacitor.Bridge.$r8$lambda$ehFTi5f4HhVNFKTbCKAYDkpQYRA(Unknown Source:0) 
                                                                                                        at com.getcapacitor.Bridge$$ExternalSyntheticLambda3.run(Unknown Source:8) 
                                                                                                        at android.os.Handler.handleCallback(Handler.java:938) 
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                                                        at android.os.Looper.loop(Looper.java:257) 
                                                                                                        at android.os.HandlerThread.run(HandlerThread.java:67) 
                                                                                                    Caused by: java.lang.NoSuchMethodError: No virtual method getDefaultAuthority()Lcom/microsoft/identity/common/internal/authorities/Authority; in class Lcom/microsoft/identity/client/PublicClientApplicationConfiguration; or its super classes (declaration of 'com.microsoft.identity.client.PublicClientApplicationConfiguration' appears in /data/app/~~lPyURG7LHldHTWnTMMgiVQ==/com.******.app-SZZPgiX_-Ppoiam_J7UsQg==/base.apk)
                                                                                                        at nl.recognize.msauthplugin.MsAuthPlugin.getAuthorityUrl(MsAuthPlugin.java:114)
                                                                                                        at nl.recognize.msauthplugin.MsAuthPlugin.acquireToken(MsAuthPlugin.java:159)
                                                                                                        at nl.recognize.msauthplugin.MsAuthPlugin.login(MsAuthPlugin.java:56)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                        at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:138) 
                                                                                                        at com.getcapacitor.Bridge.lambda$callPluginMethod$0(Bridge.java:774) 
                                                                                                        at com.getcapacitor.Bridge.$r8$lambda$ehFTi5f4HhVNFKTbCKAYDkpQYRA(Unknown Source:0) 
                                                                                                        at com.getcapacitor.Bridge$$ExternalSyntheticLambda3.run(Unknown Source:8) 
                                                                                                        at android.os.Handler.handleCallback(Handler.java:938) 
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                                                        at android.os.Looper.loop(Looper.java:257) 
                                                                                                        at android.os.HandlerThread.run(HandlerThread.java:67) 
prabhakar1994 commented 9 months ago

My MainActivity.java Looks like

package com.myappname.app;
import android.os.Bundle;
import com.getcapacitor.BridgeActivity;
import com.getcapacitor.Plugin;
import java.util.ArrayList;
import nl.recognize.msauthplugin.MsAuthPlugin;

public class MainActivity extends BridgeActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        registerPlugin(MsAuthPlugin.class);
    }
}

AndroidManifest..xml added with

<activity android:exported="true" android:name="com.microsoft.identity.client.BrowserTabActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data
                    android:scheme="msauth"
                    android:host="com.myappname.app"
                    android:path="/myhashkey" />
            </intent-filter>
        </activity>

And my App.js (React) Contains -- Calling userLogin in useEffect lifecycle

const userLogin = async () => {
      try {
          const result = await MsAuthPlugin.login({
            clientId: process.env.REACT_APP_CLIENTID,
            tenant: process.env.REACT_APP_TENANTID,
            scopes: ["api://****-******-*******/session:scope:user"],
            keyHash: 'myhashkey'
        });

        const accessToken = result.accessToken;
        console.log('Authentication successful', result);
        console.log('Authentication accessToken', accessToken);
      } catch (error) {
        console.error('Authentication failed', error);
      }
    };
bartwesselink commented 9 months ago

Hey @prabhakar1994, thank you for using the plugin. Which version of the plugin & Capacitor do you use?

prabhakar1994 commented 9 months ago

@bartwesselink I am using @recognizebv/capacitor-plugin-msauth": "^3.2.0 and @capacitor/cli": "5.2.1.

dandamoodi commented 5 months ago

@prabhakar1994 could you please share the sample project to checkout?