无法呈现Google+ SignInButton

Jas*_*Cav 7 android google-play android-studio

我正在尝试按照Android Studio 0.8.6 设置Google Play服务教程.最后,我想将Google+登录按钮添加到我的应用中(例如,请参见下文).当我将按钮添加到我的XML时,预览窗格(以及在调试模式下部署它时的应用程序本身)会显示以下错误消息:

呈现问题无法实例化以下类: - com.google.android.gms.common.SignInButton(Open Class,Show Exception)提示:在自定义视图中使用View.isInEditMode()可在显示时跳过代码或显示示例数据在IDE中

异常详细信息java.lang.ClassNotFoundException:java.lang.ClassLoader.loadClass(ClassLoader.java:306)中的com.google.android.gms.dynamic.f,位于java.lang.ClassLoader.loadClass(ClassLoader.java:247)at java.lang.ClassLoader.defineClass1(ClassLoader.java:-2)java.lang上的java.lang.ClassLoader.defineClass(ClassLoader.java:637)java.lang上的java.lang.ClassLoader.defineClass(ClassLoader.java:621). java.lang.ClassLoader.loadClass(ClassLoader.java:306)中的ClassLoader.defineClass(ClassLoader.java:471)位于com.google.android.gms.common的java.lang.ClassLoader.loadClass(ClassLoader.java:247) .SignInButton.z位于com.google.android.gms.com上的com.google.android.gms.common.SignInButton.setStyle,位于com.google.android.gms.com上.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).在android.view.LayoutInflater.inflate(LayoutInflater.java:381)的android.view.LayoutInflater.inflate(LayoutInflater.java:500)中查看.LayoutInflater.rInflate(LayoutInflater.java:778)将堆栈复制到剪贴板

我已经看到并试图遵循在类似问题中找到的步骤(其中大多数与Eclipse有关).我还试图:

  • 清理构建.
  • 重新同步Gradle
  • 使高速缓存/重新启动无效
  • 重新获取库.

另一点值得注意的是,所有其他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" />
Run Code Online (Sandbox Code Playgroud)

swb*_*dit 9

我相信这是最新Google Play Services(5.0)代码和/或与gradle和Android Studio集成的错误.

我遇到了同样的问题,我通过降级项目中使用的Google Play服务版本来解决这个问题.我build.gradle在依赖项部分下添加了以下内容:

dependencies{
    compile 'com.google.android.gms:play-services:4.4.52'
    ...
}
Run Code Online (Sandbox Code Playgroud)

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