无法呈现的Google+ SignInButton [英] Cannot Render Google+ SignInButton

查看:610
本文介绍了无法呈现的Google+ SignInButton的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图按照建立href="http://developer.android.com/google/play-services/setup.html" rel="nofollow">谷歌播放服务教程添加Google+登录功能按钮,我的应用程序 (参见下面的实施例)。当我将按钮添加到我的XML中,preVIEW窗格(以及应用程序本身,当我在调试模式下部署)提供​​了以下错误消息:

  

渲染问题下面的类不能被实例化:    - com.google.android.gms.common.SignInButton(公开课,显示异常)提示:使用View.isInEditMode()在你的自定义视图跳过   当在IDE中显示code或显示抽样数据。

     

异常详细信息   抛出java.lang.ClassNotFoundException:com.google.android.gms.dynamic.f   在java.lang.ClassLoader.loadClass(ClassLoader.java:306)在   java.lang.ClassLoader.loadClass(ClassLoader.java:247)在   java.lang.ClassLoader.defineClass1(ClassLoader.java:-2)在   java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)在   需要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)在   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)在   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)在类似的问题中的步骤。我也尝试:

  • 清洁构建。
  • 重新同步摇篮
  • 的Invalidate缓存/重启
  • 重新获得库。

另外需要指出的是,它似乎所有其他的谷歌Play服务调用编译。例如,我打电话到 GooglePlayServicesUtil.isGooglePlayServicesAvailable ,没有明显的问题。

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

使用Google+的签到按钮:

 < com.google.android.gms.common.SignInButton
    机器人:ID =@ + ID / sign_in_button
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT/>
 

解决方案

我相信这是在最新的谷歌播放服务(5.0)code和/或摇篮和Android工作室。

集成的错误

我有同样的问题,我是能够得到解决它通过降级在我的项目中使用谷歌播放服务的版本。我加在下面的 build.gradle 根据依赖关系部分:

 相关性{
    编译com.google.android.gms:播放服务:52年4月4日
    ...
}
 

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

I am attempting to follow the Setting Up Google Play Services tutorial for Android Studio 0.8.6. Ultimately, I want to add the Google+ sign-in button to my app (see below for example). When I add the button to my XML, the preview pane (as well as the app itself when I deploy it in debug mode) gives the following error message:

Rendering Problems The following classes could not be instantiated: - com.google.android.gms.common.SignInButton (Open Class, Show Exception) Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE

Exception Details java.lang.ClassNotFoundException: com.google.android.gms.dynamic.f   at 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 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  at com.google.android.gms.common.SignInButton.setStyle  at com.google.android.gms.common.SignInButton.  at com.google.android.gms.common.SignInButton.  at java.lang.reflect.Constructor.newInstance(Constructor.java:513)   at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:802)   at 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 stack to clipboard

I have seen and have attempted to follow steps found in similar questions (most of which are related to Eclipse). I have also attempted to:

  • Clean the build.
  • Resync Gradle
  • Invalidate Caches / Restart
  • Re-get the libraries.

Another point of note is that it seems all other Google Play service calls compile. For example, I am make a call to GooglePlayServicesUtil.isGooglePlayServicesAvailable with no apparent issues.

Can anybody steer me in the correct direction?

Using the Google+ sign-in button:

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

解决方案

I believe this is a bug in the latest Google Play Services (5.0) code and/or integration with gradle and Android Studio.

I had the same problem and I was able to get around it by downgrading the version of Google Play Services used in my project. I added the following in the build.gradle under the dependencies section:

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

After that, the error went away and the layout designer was able to render the Google+ Sign-In button on the screen.

这篇关于无法呈现的Google+ SignInButton的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆