init-engineer / init.engineer-Android-App

這是一份純靠北工程師 Android App 的專案。
https://play.google.com/store/apps/details?id=engineer.kaobei
28 stars 7 forks source link

應用於發表文章最後步驟~~射射射~~時程序崩潰 #22

Closed brlin-tw closed 4 years ago

brlin-tw commented 4 years ago

問題重現步驟

因涉及以個人身份發表言論未嘗試精簡重現步驟,敬請見諒:

  1. 開啟應用
  2. 點擊 :pen: 圖示開啟「發表文章」界面
  3. 點擊「編輯文章」按鈕,輸入文章內文
  4. 點擊「選擇圖片」按鈕,透過第三方應用選取一圖片
  5. 點擊「發表文章」按鈕
  6. 於「真的要發文了嗎?????」界面選擇「發表文章」

另請參閱:

純靠北工程師的 Android APP 第 22 號議題問題重現影片 - YouTube

預期行為

射射射

目前行為

應用疑似自動重啟,應無送出文章

可能有關的運行紀錄

06-05 01:38:14.108 27673 27673 E AndroidRuntime: FATAL EXCEPTION: main
06-05 01:38:14.108 27673 27673 E AndroidRuntime: Process: engineer.kaobei, PID: 27673
06-05 01:38:14.108 27673 27673 E AndroidRuntime: java.lang.IllegalArgumentException: @Part annotation must supply a name or use MultipartBody.Part parameter type. (parameter #2)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:     for method KaobeiEngineerService.publishArticle
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at retrofit2.Utils.methodError(Utils.java:54)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at retrofit2.Utils.methodError(Utils.java:43)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at retrofit2.Utils.parameterError(Utils.java:64)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at retrofit2.RequestFactory$Builder.parseParameterAnnotation(RequestFactory.java:668)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at retrofit2.RequestFactory$Builder.parseParameter(RequestFactory.java:325)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at retrofit2.RequestFactory$Builder.build(RequestFactory.java:206)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at retrofit2.RequestFactory.parseAnnotations(RequestFactory.java:67)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:26)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:202)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at retrofit2.Retrofit$1.invoke(Retrofit.java:160)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at $Proxy2.publishArticle(Unknown Source)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at engineer.kaobei.Fragment.CreateArticleFragment$onCreateView$6$1.onClick(CreateArticleFragment.kt:232)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at android.view.View.performClick(View.java:7160)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at android.view.View.performClickInternal(View.java:7137)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at android.view.View.access$3500(View.java:810)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at android.view.View$PerformClick.run(View.java:27418)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:883)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:100)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:224)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:7520)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
06-05 01:38:14.108 27673 27673 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
brlin-tw commented 4 years ago

環境

小米9 (MIUI Global 11.0.6; Android 10 QKQ1.190825.002)

kimipeng commented 4 years ago

Root Cause: https://stackoverflow.com/questions/39558595/how-to-send-image-and-text-at-the-same-time-using-retrofit

Solution:

  1. @Part ("something") RequestBody,@Part後面要加name
  2. 修改方法參數改成 @Part MultipartBody.Part,目前是@Part requestBody 好像有誤

以上,提供可能的問題與解法

SmoothieNoIce commented 4 years ago

暫時解決閃退問題

SmoothieNoIce commented 4 years ago

cd88ccc merge完成