我的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搜索了几个小时,而且几乎被卡住了。有什么建议吗?
答案 0 :(得分:0)
经过多次“血,汗和泪”之后,我发现AndroidManifest.xml文件中存在一行问题......
android:launchMode="singleInstance"
我不知道为什么这条线会影响运行JellyBean的手机,而不是Marshmallow(不确定Kitkat和Lollipop)。而且,为了清楚起见,这条线确切地将问题与存在/不存在相关(没有其他变化)。
我使用Drives's Quickstart作为基础(它的连接适用于我所有的测试手机),然后通过添加/删除我的应用程序代码逐渐修改其代码(花了我几天)
无论如何,谢天谢地,感谢这些工作样本。