java.lang.NoClassDefFoundError的:com.google.api.services.drive.DriveNoClassDefFoundError、com、java、lan

2023-09-03 22:59:06 作者:我负天下唯不负你

在尝试使用任何驱动类的函数:

 驱动器的服务=新Drive.Builder(AndroidHttp.newCompatibleTransport(),新GsonFactory(),证书).build();
 

我已经包含了正确的罐子在库文件夹:

  

谷歌API的服务驱动-V2-rev123-1.18.0-rc.jar

和进口的罚款:

  

进口com.google.api.services.drive.Drive;进口   com.google.api.services.drive.DriveScopes;

但它不断显示错误:

 十一月五日至7号:54:37.865:E / AndroidRuntime(25824):致命异常:AsyncTask的#1
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):java.lang.RuntimeException的:执行doInBackground时出错()
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在android.os.AsyncTask $ 3.done(AsyncTask.java:299)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在java.util.concurrent.FutureTask中$ Sync.innerSetException(FutureTask.java:273)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在java.util.concurrent.FutureTask.setException(FutureTask.java:124)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在java.util.concurrent.FutureTask中$ Sync.innerRun(FutureTask.java:307)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在java.util.concurrent.FutureTask.run(FutureTask.java:137)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在android.os.AsyncTask $ SerialExecutor $ 1.运行(AsyncTask.java:230)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:569)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在java.lang.Thread.run(Thread.java:838)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):由:java.lang.NoClassDefFoundError的:com.google.api.services.drive.Drive $生成器
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在com.example.googledrivetest.MainActivity $ getAccountDetails.doInBackground(MainActivity.java:138)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在com.example.googledrivetest.MainActivity $ getAccountDetails.doInBackground(MainActivity.java:1)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在android.os.AsyncTask $ 2.call(AsyncTask.java:287)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):在java.util.concurrent.FutureTask中$ Sync.innerRun(FutureTask.java:305)
十一月五日至7日:54:37.865:E / AndroidRuntime(25824):... 5个
 
源码阅读Enum JAVA成长之路

解决方案

我相信你没有包括谷歌API的客户端1.18.0-rc.jar 库,那就是你所得到的异常的原因。

一旦你下载并解压缩驱动器API库,请阅读驱动器/ readme.html文件。它列出了的依赖罐子谷歌API的服务驱动-V2-rev123-1.18.0-rc.jar 需要被包括在内。从属罐可以位于驱动器/库文件夹。

以下是完整的组需要列入为Android应用程序jar文件:

谷歌API的服务驱动-V2-rev123-1.18.0-rc.jar 在谷歌的API客户端-1.18.0-rc.jar 在谷歌的OAuth客户端-1.18.0-rc.jar 在谷歌的HTTP客户端-1.18.0-rc.jar jsr305-1.3.9.jar 在谷歌的HTTP客户端GSON-1.18.0-rc.jar 在谷歌的API客户端,Android为1.18.0-rc.jar 在谷歌的HTTP客户端,Android为1.18.0-rc.jar

While trying to use any Drive class function:

Drive service = new Drive.Builder(AndroidHttp.newCompatibleTransport(),new GsonFactory(), credential).build();

I have included the right jar in the libs folders:

google-api-services-drive-v2-rev123-1.18.0-rc.jar

and the imports are fine:

import com.google.api.services.drive.Drive; import com.google.api.services.drive.DriveScopes;

But it keeps on showing the error:

05-07 11:54:37.865: E/AndroidRuntime(25824): FATAL EXCEPTION: AsyncTask #1
05-07 11:54:37.865: E/AndroidRuntime(25824): java.lang.RuntimeException: An error occured while executing doInBackground()
05-07 11:54:37.865: E/AndroidRuntime(25824):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
05-07 11:54:37.865: E/AndroidRuntime(25824):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
05-07 11:54:37.865: E/AndroidRuntime(25824):    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
05-07 11:54:37.865: E/AndroidRuntime(25824):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
05-07 11:54:37.865: E/AndroidRuntime(25824):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
05-07 11:54:37.865: E/AndroidRuntime(25824):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
05-07 11:54:37.865: E/AndroidRuntime(25824):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
05-07 11:54:37.865: E/AndroidRuntime(25824):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
05-07 11:54:37.865: E/AndroidRuntime(25824):    at java.lang.Thread.run(Thread.java:838)
05-07 11:54:37.865: E/AndroidRuntime(25824): Caused by: java.lang.NoClassDefFoundError: com.google.api.services.drive.Drive$Builder
05-07 11:54:37.865: E/AndroidRuntime(25824):    at com.example.googledrivetest.MainActivity$getAccountDetails.doInBackground(MainActivity.java:138)
05-07 11:54:37.865: E/AndroidRuntime(25824):    at com.example.googledrivetest.MainActivity$getAccountDetails.doInBackground(MainActivity.java:1)
05-07 11:54:37.865: E/AndroidRuntime(25824):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-07 11:54:37.865: E/AndroidRuntime(25824):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
05-07 11:54:37.865: E/AndroidRuntime(25824):    ... 5 more

解决方案

I believe you have not included google-api-client-1.18.0-rc.jar library, that is the reason you are getting the exception.

Once you download and unzip the Drive API library, please read the drive/readme.html. It has listed the dependent jars for google-api-services-drive-v2-rev123-1.18.0-rc.jar that need to be included. The dependent jars can be located in drive/libs folder.

Following are the complete set of jars that need to be included for Android application:

google-api-services-drive-v2-rev123-1.18.0-rc.jar google-api-client-1.18.0-rc.jar google-oauth-client-1.18.0-rc.jar google-http-client-1.18.0-rc.jar jsr305-1.3.9.jar google-http-client-gson-1.18.0-rc.jar google-api-client-android-1.18.0-rc.jar google-http-client-android-1.18.0-rc.jar