I am using android studio. I'm trying to make a simple mobile application, but due to the function I made to pull my data through the API, the application closes as it starts. And I am getting such errors in log chat. What do you think caused the error?
```
FATAL EXCEPTION: main
Process: com.h5200041.yasin_gundogdu_final, PID: 9649
java.lang.ExceptionInInitializerError
at okhttp3.internal.platform.Platform.get(Platform.java:85)
at okhttp3.OkHttpClient.newSslSocketFactory(OkHttpClient.java:263)
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:229)
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:202)
at com.h5200041.yasin_gundogdu_final.network.Service.getOkHttpClient(Service.java:29)
at com.h5200041.yasin_gundogdu_final.network.Service.getRetrofit(Service.java:17)
at com.h5200041.yasin_gundogdu_final.network.Service.getServiceApi(Service.java:37)
at com.h5200041.yasin_gundogdu_final.activity.MainActivity.servisCagir(MainActivity.java:51)
at com.h5200041.yasin_gundogdu_final.activity.MainActivity.init(MainActivity.java:47)
at com.h5200041.yasin_gundogdu_final.activity.MainActivity.onCreate(MainActivity.java:40)
at android.app.Activity.performCreate(Activity.java:8000)
at android.app.Activity.performCreate(Activity.java:7984)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.IllegalStateException: Expected Android API level 21+ but was 30
at okhttp3.internal.platform.AndroidPlatform.buildIfSupported(AndroidPlatform.java:238)
at okhttp3.internal.platform.Platform.findPlatform(Platform.java:202)
at okhttp3.internal.platform.Platform.<clinit>(Platform.java:79)
at okhttp3.internal.platform.Platform.get(Platform.java:85)
at okhttp3.OkHttpClient.newSslSocketFactory(OkHttpClient.java:263)
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:229)
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:202)
at com.h5200041.yasin_gundogdu_final.network.Service.getOkHttpClient(Service.java:29)
at com.h5200041.yasin_gundogdu_final.network.Service.getRetrofit(Service.java:17)
at com.h5200041.yasin_gundogdu_final.network.Service.getServiceApi(Service.java:37)
at com.h5200041.yasin_gundogdu_final.activity.MainActivity.servisCagir(MainActivity.java:51)
at com.h5200041.yasin_gundogdu_final.activity.MainActivity.init(MainActivity.java:47)
at com.h5200041.yasin_gundogdu_final.activity.MainActivity.onCreate(MainActivity.java:40)
at android.app.Activity.performCreate(Activity.java:8000)
at android.app.Activity.performCreate(Activity.java:7984)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
```
API Function
private void servisCagir(){
new Service().getServiceApi().humansGetir().
subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<Human>>() {
List<Human> humans=new ArrayList<>();
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(List<Human> humansListParam) {
humans=humansListParam;
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete()
{
if(humans.size()>0) {
initRecycleView(humans);
}
}
});
}
Service Class
import com.h5200041.yasin_gundogdu_final.utils.Constants;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
public class Service {
private static Retrofit retrofit;
private static Retrofit getRetrofit() {
if (retrofit == null) {
retrofit = new Retrofit.Builder()
.baseUrl(Constants.BASE_URL)
.client(getOkHttpClient())
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}
return retrofit;
}
static OkHttpClient okHttpClient;
private static OkHttpClient getOkHttpClient()
{
if(okHttpClient == null) {
okHttpClient = new OkHttpClient().newBuilder().build();
}
return okHttpClient;
}
ServiceApi serviceApi;
public ServiceApi getServiceApi() {
if(serviceApi == null) {
serviceApi = getRetrofit().create(ServiceApi.class);
}
return serviceApi;
}
}
ServiceApi Interface
import com.h5200041.yasin_gundogdu_final.model.Human;
import java.util.List;
import io.reactivex.Observable;
import retrofit2.http.GET;
public interface ServiceApi {
@GET("humans.json")
Observable<List<Human>> humansGetir();
}
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.h5200041.yasin_gundogdu_final">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:usesCleartextTraffic="true"
android:allowBackup="true"
android:name=".MyApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_circle"
android:supportsRtl="true"
android:theme="@style/Theme.anybody">
<activity android:name=".activity.SplashScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activity.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.MAIN" />
</intent-filter>
</activity>
<meta-data
android:name="preloaded_fonts"
android:resource="@array/preloaded_fonts" />
</application>
</manifest>