0

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>
ysn
  • 1
  • 2

0 Answers0