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

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

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

خطای اول :

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

[php]

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 وارد کنید

[/php]

[php]
android {


compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

kotlinOptions {
}
}
[/php]

خطای دوم :

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

[php]
Log.e("Error", "onFailure: "+t.getMessage() );
[/php]

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

[php]
onFailure: CLEARTEXT communication to 192.168.56.1 not permitted by network security policy
[/php]

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

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

[/php]

[php]
android:usesCleartextTraffic="true"
[/php]

بصورت زیر

[php]
<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">
[/php]

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

نشانی ایمیل شما منتشر نخواهد شد.