Java 亚马逊cognito与谷歌按钮崩溃计划

Java 亚马逊cognito与谷歌按钮崩溃计划,java,android,amazon-cognito,google-authentication,aws-cognito,Java,Android,Amazon Cognito,Google Authentication,Aws Cognito,我正在努力让cognito发挥作用。它在用户登录和facebook上运行得非常好,但由于某种原因,当我添加google按钮时,它会崩溃,出现一条很长的错误消息和一堆java.lang.NoClassDefFoundError 我将遵循此处提供的教程: 这是导致所有错误的行: // Add Google as Identity Provider. IdentityManager.getDefaultIdentityManager().addSignInProvider(

我正在努力让cognito发挥作用。它在用户登录和facebook上运行得非常好,但由于某种原因,当我添加google按钮时,它会崩溃,出现一条很长的错误消息和一堆
java.lang.NoClassDefFoundError

我将遵循此处提供的教程:

这是导致所有错误的行:

        // Add Google as Identity Provider.
    IdentityManager.getDefaultIdentityManager().addSignInProvider(
            GoogleSignInProvider.class);
    GoogleSignInProvider.setPermissions(Scopes.EMAIL, Scopes.PROFILE);
我的成绩档案如下

apply插件:“com.android.application”
安卓{
编译DK26版
buildToolsVersion“25.0.2”
默认配置{
applicationId“com.sniffergps.sniffer”
明斯克版本19
targetSdkVersion 26
版本代码1
版本名称“1.0”
TestInstrumentRunner“android.support.test.runner.AndroidJUnitRunner”
多索引启用真
}
建筑类型{
释放{
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard rules.pro'
}
}
}
依赖关系{
编译文件树(目录:“libs”,包括:['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso核心:2.2.2'{
排除组:“com.android.support”,模块:“support annotations”
})
编译'com.android.support:appcompat-v7:26.0.0-alpha1'
编译'com.android.support:design:26.0.0-alpha1'
testCompile'junit:junit:4.12'
编译('com.amazonaws:aws android sdk验证用户池:2.6。0@aar“){transitive=true;}
编译('com.amazonaws:aws-android-sdk-auth-core:2.6。0@aar“){transitive=true;}
//SDK登录提示UI库
编译('com.amazonaws:aws android sdk验证ui:2.6。0@aar“){transitive=true;}
编译'com.amazonaws:aws android sdk核心:2.6.0'
编译('com.amazonaws:aws-android-sdk-auth-core:2.6。0@aar“){transitive=true;}
编译('com.amazonaws:aws-android-sdk-auth-facebook:2.6.+@aar'){transitive=true;}
编译('com.amazonaws:aws android sdk验证ui:2.6.+@aar'){transitive=true;}
编译'com.android.support:support-v4:26.0'
编译('com.amazonaws:aws-android-sdk-auth-google:2.6.+@aar'){transitive=true;}
//SDK登录提示UI库的依赖项
编译('com.amazonaws:aws android sdk验证ui:2.6.+@aar'){transitive=true;}
编译'com.android.support:appcompat-v7:26.0.0-alpha1'
编译'com.amazonaws:aws android sdk cognitoidentityprovider:2.6.0'
编译'com.amazonaws:aws android sdk核心:2.6.0'
编译'com.android.support:multidex:1.0.1'
编译'com.android.support:support-v4:26.0'
//编译'com.android.support.constraint:constraint布局:+'
testCompile'junit:junit:4.12'
编译'com.google.android.gms:play services地图:10.0.1'
编译'com.android.support:support-v4:26.+'
编译('com.amazonaws:aws-android-sdk-auth-google:2.6.+@aar'){transitive=true;}
//SDK登录提示UI库的依赖项
编译'com.android.support:appcompat-v7:26.+'
编译('com.amazonaws:aws android sdk验证ui:2.6.+@aar'){transitive=true;}
编译'com.amazonaws:aws android sdk ddb映射器:2.6.0'

}
此错误看起来您的gradle可能没有所有必要的google库

compile 'com.facebook.android:facebook-android-sdk:4.20.0'
compile 'com.google.android.gms:play-services-auth:9.8.0'
compile('com.amazonaws:aws-android-sdk-auth-core:2.6.0@aar')
compile('com.amazonaws:aws-android-sdk-auth-ui:2.6.0@aar')
compile('com.amazonaws:aws-android-sdk-auth-facebook:2.6.0@aar') { transitive = true; }
compile('com.amazonaws:aws-android-sdk-auth-google:2.6.0@aar') { transitive = true; }
要测试您的实现,请参见下文

  private void initializeApplication() {
        awsConfiguration = new AWSConfiguration(this);

        if (IdentityManager.getDefaultIdentityManager() == null) {
            final IdentityManager identityManager = new IdentityManager(getApplicationContext(), awsConfiguration);
            IdentityManager.setDefaultIdentityManager(identityManager);
        }


        FacebookSignInProvider.setPermissions("public_profile");

        // Add Facebook as an SignIn Provider.
        IdentityManager.getDefaultIdentityManager().addSignInProvider(FacebookSignInProvider.class);

        GoogleSignInProvider.setPermissions(Scopes.EMAIL, Scopes.PROFILE);

        // Add Google as an SignIn Provider.
        IdentityManager.getDefaultIdentityManager().addSignInProvider(GoogleSignInProvider.class);


        try {
            final PinpointConfiguration config =
                    new PinpointConfiguration(this,
                            IdentityManager.getDefaultIdentityManager().getCredentialsProvider(),
                            awsConfiguration);
            Application.pinpointManager = new PinpointManager(config);
        } catch (final AmazonClientException ex) {
            Log.e(LOG_TAG, "Unable to initialize PinpointManager. " + ex.getMessage(), ex);
        }

        // The Helper registers itself to receive application lifecycle events when it is constructed.
        // A reference is kept here in order to pass through the onTrimMemory() call from
        // the Application class to properly track when the application enters the background.
        applicationLifeCycleHelper = new AbstractApplicationLifeCycleHelper(this) {
            @Override
            protected void applicationEnteredForeground() {
                Application.pinpointManager.getSessionClient().startSession();
                // handle any events that should occur when your app has come to the foreground...
            }

            @Override
            protected void applicationEnteredBackground() {
                Log.d(LOG_TAG, "Detected application has entered the background.");
                Application.pinpointManager.getSessionClient().stopSession();
                Application.pinpointManager.getAnalyticsClient().submitEvents();
                // handle any events that should occur when your app has gone into the background...
            }
        };
    }
在onCreate中调用该方法

initializeApplication();