无法呈现Google+ SignInButton

时间:2014-09-02 04:09:22

标签: android android-studio google-play

我正在尝试按照Android Studio 0.8.6的设置Google Play Services教程进行操作。最终,我想要add the Google+ sign-in button to my app(例如见下文)。当我将按钮添加到我的XML时,预览窗格(以及在调试模式下部署它时的应用程序本身)会显示以下错误消息:

  

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

     

异常细节   java.lang.ClassNotFoundException:com.google.android.gms.dynamic.f   在java.lang.ClassLoader.loadClass(ClassLoader.java:306)at   java.lang.ClassLoader.loadClass(ClassLoader.java:247)at   java.lang.ClassLoader.defineClass1(ClassLoader.java:-2)at   java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)at at   java.lang.ClassLoader.defineClass(ClassLoader.java:621)at   java.lang.ClassLoader.defineClass(ClassLoader.java:471)at   java.lang.ClassLoader.loadClass(ClassLoader.java:306)at   java.lang.ClassLoader.loadClass(ClassLoader.java:247)at   com.google.android.gms.common.SignInButton.z在   com.google.android.gms.common.SignInButton.setStyle在   com.google.android.gms.common.SignInButton。在   com.google.android.gms.common.SignInButton。在   java.lang.reflect.Constructor.newInstance(Constructor.java:513)at   android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:802)   在   android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)   在android.view.LayoutInflater.rInflate(LayoutInflater.java:778)   在android.view.LayoutInflater.inflate(LayoutInflater.java:500)处   android.view.LayoutInflater.inflate(LayoutInflater.java:381)复制   堆栈到剪贴板

我已经看过并试图按照类似问题中的步骤(大多数与Eclipse相关)。我也试图:

  • 清理构建。
  • Resync 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" />

3 个答案:

答案 0 :(得分:9)

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

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

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

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

答案 1 :(得分:2)

您应该将此行添加到您应用的build.gralde中: compile 'com.google.android.gms:play-services:8.3.0' 最新版本是9.0.2,4.4.52太旧了。

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

答案 2 :(得分:0)

添加依赖性后:

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

您需要重建项目。

在Android Studio中:

Build -> Rebuild Project