Retrofit2 java.lang.NoClassDefFoundError: okhttp3/Call$Factory in JAVA
Retrofit2 java.lang.NoClassDefFoundError: okhttp3/Call$Factory in JAVA
I am not developing a Android Application ,
I'm just writing some JAVA codes to support Imgur API services.
public interface ImgurAPI {
String server = "https://api.imgur.com";
String BASE64 = "base64";
@POST("/3/upload")
void postImage(
@Header("Authorization") String auth,
@Query("title") String title,
@Query("description") String description,
@Query("type") String type,
@Body String base64Image,
Callback<ImageResponse> cb
);
}
主要内容:
public static void main(String[] args) {
try{
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ImgurAPI.server)
.build();
ImgurAPI myAPI = retrofit.create(ImgurAPI.class);
String base64Image = new ImageReader(PATH).getBase64String();
myAPI.postImage(AUTH, "Hi", "Test", ImgurAPI.BASE64, base64Image, new MyCallBack());
}catch(Exception err){
err.printStackTrace();
}
}
并抛出异常:
Exception in thread "main" java.lang.NoClassDefFoundError: okhttp3/Call$Factory
at Main.main(Main.java:14)
Caused by: java.lang.ClassNotFoundException: okhttp3.Call$Factory
我找到了很多 Android 的解决方案。
所以我想知道 Retrofit 是否仅在 JAVA 中可用。
谢谢 。
我解决了,
如果您正在写 Java(仅 Java),
你下载了 Retrofit2 的 Jar,
它可能不包含 Android Studio 中内置的某些库,
所以你必须手动下载它们。
- OkHttp3 OkHttp3 3.0.0 Jar download
- Okio Okio 1.6.0 Jar download
- 改装转换器 gson Retrofit converter gson-2 beta3 Jar download
(如果你想转换其他类型的数据,只需在Retrofit下载其他Jar)
- Gson Gson 2.2.3 Jar download
导入jar文件,就可以了
确保你得到了所有的
如果在 Java EE 项目中使用 Influxdb-java.jar 时出现此错误后寻找解决方案时发现此 post,则需要以下依赖项:
- OKHttp3: https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp/3.9.1
- 改装 2:https://mvnrepository.com/artifact/com.squareup.retrofit2/retrofit/2.3.0
- 用于 Retrofit2 的 Moshi 转换器:https://mvnrepository.com/artifact/com.squareup.retrofit2/converter-moshi/2.3.0
- 莫氏:https://mvnrepository.com/artifact/com.squareup.moshi/moshi/1.5.0
- 奥基奥:https://mvnrepository.com/artifact/com.squareup.okio/okio/1.13.0
- OKHttp3 日志拦截器:https://mvnrepository.com/artifact/com.squareup.okhttp3/logging-interceptor/3.9.1
解决这个问题很烦人,所以希望它对某人有所帮助。
I am not developing a Android Application ,
I'm just writing some JAVA codes to support Imgur API services.
public interface ImgurAPI {
String server = "https://api.imgur.com";
String BASE64 = "base64";
@POST("/3/upload")
void postImage(
@Header("Authorization") String auth,
@Query("title") String title,
@Query("description") String description,
@Query("type") String type,
@Body String base64Image,
Callback<ImageResponse> cb
);
}
主要内容:
public static void main(String[] args) {
try{
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ImgurAPI.server)
.build();
ImgurAPI myAPI = retrofit.create(ImgurAPI.class);
String base64Image = new ImageReader(PATH).getBase64String();
myAPI.postImage(AUTH, "Hi", "Test", ImgurAPI.BASE64, base64Image, new MyCallBack());
}catch(Exception err){
err.printStackTrace();
}
}
并抛出异常:
Exception in thread "main" java.lang.NoClassDefFoundError: okhttp3/Call$Factory
at Main.main(Main.java:14)
Caused by: java.lang.ClassNotFoundException: okhttp3.Call$Factory
我找到了很多 Android 的解决方案。
所以我想知道 Retrofit 是否仅在 JAVA 中可用。
谢谢 。
我解决了, 如果您正在写 Java(仅 Java), 你下载了 Retrofit2 的 Jar, 它可能不包含 Android Studio 中内置的某些库, 所以你必须手动下载它们。
- OkHttp3 OkHttp3 3.0.0 Jar download
- Okio Okio 1.6.0 Jar download
- 改装转换器 gson Retrofit converter gson-2 beta3 Jar download (如果你想转换其他类型的数据,只需在Retrofit下载其他Jar)
- Gson Gson 2.2.3 Jar download
导入jar文件,就可以了
确保你得到了所有的
如果在 Java EE 项目中使用 Influxdb-java.jar 时出现此错误后寻找解决方案时发现此 post,则需要以下依赖项:
- OKHttp3: https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp/3.9.1
- 改装 2:https://mvnrepository.com/artifact/com.squareup.retrofit2/retrofit/2.3.0
- 用于 Retrofit2 的 Moshi 转换器:https://mvnrepository.com/artifact/com.squareup.retrofit2/converter-moshi/2.3.0
- 莫氏:https://mvnrepository.com/artifact/com.squareup.moshi/moshi/1.5.0
- 奥基奥:https://mvnrepository.com/artifact/com.squareup.okio/okio/1.13.0
- OKHttp3 日志拦截器:https://mvnrepository.com/artifact/com.squareup.okhttp3/logging-interceptor/3.9.1
解决这个问题很烦人,所以希望它对某人有所帮助。