我正在尝试按照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相关)。我也试图:
另一点值得注意的是,所有其他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 :(得分: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