【发布时间】:2020-06-15 14:51:09
【问题描述】:
这是我尝试初始化 fcm 类对象时遇到的错误
com.example.myfoodserver E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myfoodserver, PID: 28042
java.lang.ExceptionInInitializerError
at okhttp3.OkHttpClient.newSslSocketFactory(OkHttpClient.java:263)
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:229)
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:202)
at retrofit2.Retrofit$Builder.build(Retrofit.java:628)
at com.example.myfoodserver.remote.RetrofitFCMClient.getInstance(RetrofitFCMClient.java:17)
at com.example.myfoodserver.ui.order.OrderFragment.initViews(OrderFragment.java:126)
at com.example.myfoodserver.ui.order.OrderFragment.onCreateView(OrderFragment.java:106)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2698)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:320)
这是 fcm 类代码
public interface IFCMService {
@Headers({"Authorization: key=AAAAVY7Xgs4:APA91bF_OPZaLVUixFZ3yxBG2lJn2s45o1J99cvO2YW-gBOGbpUkeUUDgalJsiTuTMXBA1orPa2Uqjt1Gsd_FcbOdoMpjy7VZzwfZPzV_YKDWCXBeu",
"Content-Type:application/json"})
@POST("fcm/send")
Observable<FCMResponse> sendNotification(@Body FCMSendData body);
这是改造类,在构建线上会出错
public class RetrofitFCMClient {
private static Retrofit instance;
public static Retrofit getInstance() {
if (instance == null)
instance = new Retrofit.Builder()
.baseUrl("https://fcm.googleapis.com/")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
return instance;
}
}
【问题讨论】:
-
ifcmService = RetrofitFCMClient.getInstance().create(IFCMService.class);
-
那是我初始化 fcm 类的对象的地方,它给出了错误,我仍然不明白为什么当我尝试初始化改造对象时它给出了这个错误
标签: android firebase android-studio firebase-cloud-messaging retrofit2