retrofit エラー対処
エラー1
java.lang.IllegalArgumentException: @Field parameters can only be used with form encoding.
上記のエラーメッセージが出る場合には、インターフェースに@FormUrlEncodedアノテーションを付け忘れている可能性がある。 つけて再実行する。
interface ShareService { @FormUrlEncoded @POST("rest-auth/login/") fun login(@Field("email") email: String?, @Field("password") password: String?) : Call<AuthModel> }
エラー2
java.net.UnknownServiceException: CLEARTEXT communication to 10.0.2.2 not permitted by network security policy
マニフェストファイルにhttp通信を行うパーミッションを記述していないことから生じるエラーである。 参考:https://stackoverflow.com/questions/45940861/android-8-cleartext-http-traffic-not-permitted
<?xml version="1.0" encoding="utf-8"?> <manifest ...> <uses-permission android:name="android.permission.INTERNET" /> <application ... android:usesCleartextTraffic="true" ...> ... </application> </manifest>