ارور در اجرای Retrofit

ارور در اجرای Retrofit

بعد ازپایان دستورات و اجرای رتروفید برای دریافت داده ها در برنامه نویسی اندروید ممکن هست بعد از اجرا با خطاهای زیر در اندروید استودیو مواجه شوید

خطای اول :

ممکن هست با خطای زیر مواجه شوید :


java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'java.lang.invoke.LambdaMetafactory' appears in /apex/com.android.runtime/javalib/core-oj.jar) at okhttp3.internal.Util.<clinit>(Util.java:87) at

برای رفع این مشکل دو خط زیر را به فایل build.gradle app بصورت زیر بعد از ورژن sdk وارد کنید

android {

    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
    }
}

خطای دوم :

ممکن هست برنامه شما اجرا شود اما اطلاعات از سرور دریافت نشود که شما با لاگ گرفتن مثلا لاگ زیر در قسمت onFailure رتروفیت

Log.e("Error", "onFailure: "+t.getMessage() );

شبیه ارور زیر را در قسمت لاگهای اندروید استودیو ببینید :

onFailure: CLEARTEXT communication to 192.168.56.1 not permitted by network security policy

خب راه حل این مورد هم اضافه کردن دسترسی اینترنت به منی فست و یک کد بین کدهایapplication

    <uses-permission android:name="android.permission.INTERNET"/>

android:usesCleartextTraffic="true"

بصورت زیر

<application
    android:usesCleartextTraffic="true"
    android:name=".Dao.MyApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:usesCleartextTraffic="true"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *