반응형
안녕하세요
안드로이드 스튜디오[Android Studio] 개발 도중에 아래와 같은 에러가 뜬 경우 제가 해결했던 해결방법입니다
하루동안 삽질을 했는데 다음 날 아침에 머리를 비우고 와서 금방 해결했던 문제입니다
다음 날에 해결하는데 30분도 안 걸렸어... ㅠㅠ
에러 전문
E/Exception: java.lang.IllegalArgumentException: @PartMap parameters can only be used with multipart encoding. (parameter #1)
for method APIInterface.doGetPhotoUpload
at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:755)
at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:746)
at retrofit2.ServiceMethod$Builder.parameterError(ServiceMethod.java:764)
at retrofit2.ServiceMethod$Builder.parseParameterAnnotation(ServiceMethod.java:672)
at retrofit2.ServiceMethod$Builder.parseParameter(ServiceMethod.java:339)
at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:207)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170)
at retrofit2.Retrofit$1.invoke(Retrofit.java:147)
at java.lang.reflect.Proxy.invoke(Proxy.java:813)
at $Proxy0.doGetPhotoUpload(Unknown Source)
at com.example.hp.jmsc.fragment.photo.PhotoFragment.SendImage(PhotoFragment.java:267)
at com.example.hp.jmsc.fragment.photo.PhotoFragment.onActivityResult(PhotoFragment.java:324)
at android.app.Activity.dispatchActivityResult(Activity.java:6956)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4085)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4132)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1533)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
해결 방법
전체 코드를 올릴 수는 없지만 안드로이드 프로젝트에서 갤러리의 사진을 톰캣서버에 전송하는 것을 구현하는 중에 생긴 에러였습니다
하단의 소스에서 @Multipart를 추가하니 에러가 없어졌습니다
이렇게 간단하게 해결하다니... ㅠㅠ
이전 소스
@POST("inout_sjt/APP_IMG_UPLOAD.do")
Call<BaseNetwrok> doGetPhotoUpload(@PartMap() Map<String, RequestBody> partMap,
@Part MultipartBody.Part ImgFile);
해결한 소스
@Multipart
@POST("inout_sjt/APP_IMG_UPLOAD.do")
Call<BaseNetwrok> doGetPhotoUpload(@PartMap() Map<String, RequestBody> partMap,
@Part MultipartBody.Part ImgFile);
여기까지 @PartMap parameters can only be used with multipart encoding. (parameter #1) 에러를 해결한 방법이었습니다
안드로이드 개발을 하는 개발자들에게 이 글이 도움이 되었으면 좋겠습니다
반응형
그리드형