1

今天我添加谷歌播放服務庫到我的項目。我按照這些都對http://developer.android.com/google/play-services/setup.html#ensureNoClassDefFoundError當試圖建立谷歌API客戶端

截圖我設置的給出的說明:https://drive.google.com/file/d/0Bwe9sI6XZ6rcZGZzdmlaQjVheDA/edit?usp=sharing

問題是,當我嘗試執行下面的代碼,一個NoClassDefFoundError的異常引起。

public class MainActivity extends Activity { 

private GoogleApiClient mGoogleClient; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    mGoogleClient = new GoogleApiClient.Builder(this) 
    .addApi(Games.API) 
    .addScope(Games.SCOPE_GAMES) 
    .setGravityForPopups(Gravity.TOP | Gravity.CENTER_HORIZONTAL) 
    .build(); 

在logcat的異常模樣

threadid=1: thread exiting with uncaught exception (group=0x40d02930) 
FATAL EXCEPTION: main 
java.lang.NoClassDefFoundError: com.google.android.gms.common.api.GoogleApiClient$Builder 
    at com.gmail.mhofer4991.at.taptorotate.MainActivity.onCreate(MainActivity.java:104) 
    at android.app.Activity.performCreate(Activity.java:5104) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2147) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
    at android.app.ActivityThread.access$600(ActivityThread.java:144) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:5074) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
    at dalvik.system.NativeStart.main(Native Method) 
    Force finishing activity com.example.taptorotate/com.gmail.mhofer4991.at.taptorotate.MainActivity 

我還清理和重建項目。

我無法解決問題讓我感到很瘋狂。我知道已經有同一主題的其他線程,我也嘗試了一些解決方案,但是這些解決方案都沒有爲我工作。請幫助我!

+0

你已經解決了嗎?我有一個相同的問題,無法弄清楚.. – Majstor 2015-02-24 10:10:37

+0

@Majstor看到我的答案!我有同樣的問題。 = | – Jorgesys 2017-04-19 16:23:40

回答

0

我也有同樣的問題,

java.lang.NoClassDefFoundError: 
     com.google.android.gms.common.api.GoogleApiClient$Builder 

我使用應用的build.gradle文件下面的依賴。

compile 'com.google.android.gms:play-services:7.8.0' 

我改成了

compile 'com.google.android.gms:play-services-plus:7.8.0' 

我更新了谷歌播放服務(啓26)和谷歌信息庫(啓20)。

之後,異常不會發生。

嘗試使用單獨的API和相應的build.gradle描述爲以下頁面中mensioned, https://developers.google.com/android/guides/setup#ensure

0

嘗試添加模糊規則的谷歌API的,如果你已經minifyEnabled或ProGuard的設置爲true: ProGuard Configuration

0

試着與谷歌驅動器的實現在Android中從來就發現了指向一些類像這樣的錯誤消息的工作:

java.lang.ClassNotFoundException: com.google.android.gms.common.api.Scope 
Caused by: java.lang.ClassNotFoundException: Didn't find class 

我發現,真正的問題是limit of 64K references當我們添加有關GoogleApiClient依賴關係,因此增加multidex支持解決我的問題:

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     ... 
     ... 
     multiDexEnabled true 
    } 
... 
... 
相關問題