谷歌API客户端的NoClassDefFoundError ApacheHttpTransport [英] Google Api Client NoClassDefFoundError ApacheHttpTransport

查看:260
本文介绍了谷歌API客户端的NoClassDefFoundError ApacheHttpTransport的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我编译Android应用程序,当我有问题。我的应用程序使用谷歌API客户端库,应用程序保持部队密切建设时。我一直在试图调试3小时,我仍然无法想通。任何一个有想法解决这一问题?

错误日志:


  

java.lang.NoClassDefFoundError的:com.google.api.client.http.apache.ApacheHttpTransport
      在com.google.api.client.extensions.android2.AndroidHttp.newCompatibleTransport(AndroidHttp.java:53)
      在com.redditandroiddevelopers.googletasksclient.GoogleTasksClientActivity.(GoogleTasksClientActivity.java:67)
      在java.lang.Class.newInstanceImpl(本机方法)
      在java.lang.Class.newInstance(Class.java:1429)
      在android.app.Instrumentation.newActivity(Instrumentation.java:1021)
      在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
      在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
      在android.app.ActivityThread.access $ 2300(ActivityThread.java:125)
      在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033)
      在android.os.Handler.dispatchMessage(Handler.java:99)
      在android.os.Looper.loop(Looper.java:123)
      在android.app.ActivityThread.main(ActivityThread.java:4627)
      在java.lang.reflect.Method.invokeNative(本机方法)
      在java.lang.reflect.Method.invoke(Method.java:521)
      在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
      在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
      在dalvik.system.NativeStart.main(本机方法)



解决方案

NoClassDefFoundError的是一个常见的​​错误时构建Android应用程序,它通常意味着一些所需的库的依赖没有得到dexed和内置到最后的apk。

回到你的问题,有一个特定的jar依赖谷歌的HTTP客户端1.7.0-beta.jar(其中包含com.google.api.client.http.apache.ApacheHttpTransport)由谷歌A​​PI客户端库所需。您需要添加不仅Google API用户端的jar包,而且还需要由谷歌API客户端库罐子到项目构建路径中的第二个级别的jar包。

在你的Andr​​oid项目,选择构建路径右键单击 - 配置构建路径,库选项卡,在这里添加所有所需的库。你可以找到所有的人都在下载的zip文件的依赖性目录。

请注意,由于SDK R17,libs目录下的所有jar文件将被自动的这里

i have problem when compiling my android app. my application use google api client library, the app keep force close when building it. i have been trying to debugging for 3 hours, i still can't figured out. any one have idea to fix this ?

error log:

java.lang.NoClassDefFoundError: com.google.api.client.http.apache.ApacheHttpTransport at com.google.api.client.extensions.android2.AndroidHttp.newCompatibleTransport(AndroidHttp.java:53) at com.redditandroiddevelopers.googletasksclient.GoogleTasksClientActivity.(GoogleTasksClientActivity.java:67) at java.lang.Class.newInstanceImpl(Native Method) at java.lang.Class.newInstance(Class.java:1429) at android.app.Instrumentation.newActivity(Instrumentation.java:1021) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) at android.app.ActivityThread.access$2300(ActivityThread.java:125) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:4627) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) at dalvik.system.NativeStart.main(Native Method)

解决方案

NoClassDefFoundError is a common error when build android application, it usually means some of required library dependencies doesn't get dexed and built into final apk.

Back to your problem, there is a specific jar dependencies google-http-client-1.7.0-beta.jar (which contains com.google.api.client.http.apache.ApacheHttpTransport) required by google api client library. You need add not only google api client library jars, but also those second level library jars that required by google api client library jars into your project build path.

Right-click on your android project, select Build Path - Configure Build Path, in library tab, add all required libraries here. You can find all of them in the dependencies directory in the downloaded zip file.

Note that since SDK r17, all jars under libs directory will be automatically added into project build path, more details at here.

这篇关于谷歌API客户端的NoClassDefFoundError ApacheHttpTransport的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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