我目前正在尝试在使用HTTPtransport的类上运行一些单元测试,它是Android应用程序的一部分。 google-api的文档说这应该没问题,因为Apache传输已内置到Android中。
但是,在运行我的测试时,我收到以下错误:
java.lang.IllegalStateException: 无法加载NetHttpTrasnport com.google.api.client.http.HttpTransport.useLowLevelHttpTransport(HttpTransport.java:98) 在 com.google.api.client.http.HttpTransport。(HttpTransport.java:156) 在 com.google.api.client.googleapis.GoogleTransport.create(GoogleTransport.java:58) 在 uk.co.redfruit.android.whogotwhat.googlebase.GoogleBaseSearch.search(GoogleBaseSearch.java:41) 在 uk.co.redfruit.android.whogotwhat.test.GoogleBaseSearchTest.testSearchForBarcode(GoogleBaseSearchTest.java:22) 在 java.lang.reflect.Method.invokeNative(母语 方法)at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169) 在 android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) 在 android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:430) 在 android.app.Instrumentation $ InstrumentationThread.run(Instrumentation.java:1447)
这是一个错误吗?或者我错过了什么?
答案 0 :(得分:1)
好的 - 我发现了问题。由于您尝试确定您所在的环境(使用class.forName()和捕获异常)的方式,所有类路径错误都会导致此失败 - 这可能会产生误导。
它正确地确定了我的环境(所以这与单元测试无关),但是后来无法加载其他类。
通过添加apache客户端,重新打包和转义jar,我能够解决问题。我建议可以改进一下。
答案 1 :(得分:0)
您是否可以使用该库的1.1版?我刚刚修复了bug以使Apache传输成为版本1.2中的默认值。因此,如果您使用的是1.1版,请尝试切换到1.2,如果不能解决错误,请告诉我。
免责声明:我是google-api-java-client图书馆的所有者。