2014-09-02 75 views
7

我正在尝试关注Android Studio 0.8.6的设置Google Play Services教程。最终,我想add the Google+ sign-in button to my app(见下面的例子)。当我将按钮添加到我的XML,预览窗格(以及应用程序本身,当我在调试模式下部署)提供​​了以下错误信息:无法呈现Google+ SignInButton

呈现问题以下类不能被实例化: - com.google.android.gms.common.SignInButton(公开课,展除外)提示:使用View.isInEditMode()在您的自定义视图跳过 代码或IDE中所示,当显示样本数据

异常详细信息 java.lang.ClassNotFoundException:com.google.android.gms.dynamic.f at java.lang.ClassLoader.loadClass(ClassLoader.java:306)atjava.lang.ClassLoader.loadClass(ClassLoader.java:637)at 需要java.lang.ClassLoader.defineClass(ClassLoader.java:621)在 需要java.lang.ClassLoader.defineClass(ClassLoader.java:471)在 java.lang.ClassLoader.loadClass(ClassLoader.java:306)在 的java。 lang.ClassLoader.loadClass(ClassLoader.java:247)at com.google.android.gms.common.SignInButton.z at com.google.android.gms.common.SignInButton.setStyle at com.google.android。 gms.common.SignInButton。在 com.google.android.gms.common.SignInButton。在 java.lang.reflect.Constructor.newInstance(Constructor.java:513)在 android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:802) 在 android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64 ) at android.view.LayoutInflater.rInflate(LayoutInflater.java:778) at android.view.LayoutInflater.inflate(LayoutInflater.java:500)at android.view.LayoutInflater.inflate(LayoutInflater.java:381)Copy 堆栈到剪贴板

我已经看到并试图遵循类似问题中找到的步骤(其中大部分与t Eclipse)。我也试图:

  • 清理版本。
  • 重新同步摇篮
  • 的Invalidate缓存/重启
  • 重新获得库。

另一点需要注意的是,似乎所有其他Google Play服务调用都是编译的。例如,我打电话给GooglePlayServicesUtil.isGooglePlayServicesAvailable没有明显问题。

任何人都可以引导我正确的方向吗?

使用Google+登录按钮:

<com.google.android.gms.common.SignInButton 
    android:id="@+id/sign_in_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
+0

在Android Studio中,预览屏幕上的“清除缓存”工作。 – 2015-09-26 04:34:11

回答

9

我相信这是最新的一个bug谷歌播放服务(5.0)代码和/或gradle这个和Android Studio集成。

我遇到同样的问题,我可以通过降级我的项目中使用的Google Play服务版本来解决它。我加入下的依赖部分build.gradle如下:

dependencies{ 
    compile 'com.google.android.gms:play-services:4.4.52' 
    ... 
} 

之后,错误消失了,布局设计能够使Google+登录按钮在屏幕上。

+0

这似乎是它。你知道我可以报告这个错误吗? – JasCav 2014-09-09 01:51:05

+1

你可以在这里报告问题:https://code.google.com/p/android/issues/list – swbandit 2014-09-09 14:16:06

+0

但是,我只是想知道,不要那些谷歌家伙测试他们的东西发布它?如果我想在v5上工作?除了降级之外没有其他可行的方法怎么样? – Tim 2014-09-09 15:29:22

0

加入depencency后:

dependencies { 
    compile 'com.google.android.gms:play-services:4.4.52' 
    ... 
} 

您需要重建项目。

在Android Studio中:

Build -> Rebuild Project 
2

你应该这一行添加到您的应用程序的build.gralde: compile 'com.google.android.gms:play-services:8.3.0' 的最新版本为9.0.2,52年4月4日是有些太旧。

总之,Integrating Google Sign-In into Your Android App有一个错误。您必须将上面的行添加到您的build.gradle文件中。

+0

后你才明白这个问题已经两岁了吧? – 2016-06-18 10:28:51

+0

不,就在今天我整合Google登录模块。我发现问题仍然存在,4.4.52确实如此低。我相信我的回答是有道理的。 – yanzi1225627 2016-06-18 11:40:15

+0

现在没有人使用Android Studio 0.8.6或GMS 4.4.52。请停止尝试提出过时的问题点,并专注于有意义的帖子,并实际帮助他人。谢谢。 – 2016-06-18 11:43:49