Android Google登录登录错误,android构建系统

时间:2016-04-20 07:51:07

标签: android makefile google-play-services google-signin

我的应用程序中有Google登录功能。我们正在使用“mm”或“make”命令从构建系统构建apk,我在Android.mk中包含了谷歌登录所需的必要jar。

现在我的问题是如果我需要oauth令牌错误,我无法使用Google登录 statusCode =未知状态代码:12501,resolution = null

String serverClientId = getString(R.string.server_client_id);

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(
        GoogleSignInOptions.DEFAULT_SIGN_IN).requestServerAuthCode(
        serverClientId).build();

// Build a GoogleApiClient with access to the Google Sign-In API and the
// options specified by gso.
mGoogleApiClient = new GoogleApiClient.Builder(this)
        .enableAutoManage(this, this)
        .addApi(Auth.GOOGLE_SIGN_IN_API, gso).build();

其中serverClientId是google开发者控制台后返回的webapplication id

我正在使用上面的代码。如果我使用Scope,我可以成功登录,但没有oauth令牌。

如果我使用相同的代码并在Android Studio中运行,我可以登录,因为它有google_service.json文件,因此gradle选择并构建apk。

所以在我的情况下有任何一个尝试通过构建apk从构建系统登录谷歌登录,我的假设是我们需要将谷歌服务json文件链接到Android.mk

3 个答案:

答案 0 :(得分:0)

替换

的getString(R.string.server_client_id);

AuthenticatedActivity.this.getResources()的getString(R.string.server_client_id);

答案 1 :(得分:0)

我的解决方案是卸载并重新安装Google+,之后一切正常。

答案 2 :(得分:0)

三天后,我得到了解决方案。为什么它与Android Studio一起工作,apk将在构建时使用调试密钥签名。从构建系统开始,它没有使用调试密钥签名。所以我现在正在做的是在" mm"之后生成后用调试密钥库对apk进行签名。命令。我们还需要在Google帐户中使用MD5(SHA1)。

1. zip -d <APK> "META-INF*"
2. jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <path to keystore>/debug.keystore <APK> keyalas
        passwords:
              android
3. <path to zipalign>/zipalign -v 4 <APK in> <APK out>
相关问题