Android GoogleApiClient连接到MARSHMALLOW但不连接到JELLY_BEAN

时间:2017-07-14 21:12:30

标签: android oauth-2.0 google-drive-api

我的Android应用将文件转储到Gdrive。它使用Oauth2.0身份验证,我已经在console.developers.google.com上完成了需要。我面临的问题是该应用程序在我的Marshmallow手机上工作正常,但无法通过我的JellyBean或更低版本的Google登录。在这些,应用程序卡在"选择帐户"窗口。

Studio的Android监视器返回以下内容:

GoogleApiClient connection failed: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{419cbb80 ...

请记住,该应用确实可以在Marshmallow手机上运行,​​我怀疑这个问题与其中一个版本相关"在app的build.grade文件中,摘录如下。

compileSdkVersion 23
buildToolsVersion "26.0.0"

defaultConfig {
    applicationId "rudy.android.stgpro"
    minSdkVersion 9
    targetSdkVersion 18
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.rudykeystore
    }
    debug {
        signingConfig signingConfigs.rudykeystore
    }
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.google.android.gms:play-services-drive:8.4.0'
}

或者,也许,Oauth2.0不适用于早期的Android版本。

我还注意到加载到Marshmallow的应用程序的大小大约是加载到其他两部手机中的大小的40%。

谷歌的云端硬盘应用可在所有手机上正常运行。

我现在用Google搜索了几个小时,而且几乎被卡住了。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

经过多次“血,汗和泪”之后,我发现AndroidManifest.xml文件中存在一行问题......

android:launchMode="singleInstance"

我不知道为什么这条线会影响运行JellyBean的手机,而不是Marshmallow(不确定Kitkat和Lollipop)。而且,为了清楚起见,这条线确切地将问题与存在/不存在相关(没有其他变化)。

我使用Drives's Quickstart作为基础(它的连接适用于我所有的测试手机),然后通过添加/删除我的应用程序代码逐渐修改其代码(花了我几天)

无论如何,谢天谢地,感谢这些工作样本。