Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upload files don't work properly in Android #1697

Closed
daaanigm opened this issue Oct 13, 2020 · 6 comments
Closed

Upload files don't work properly in Android #1697

daaanigm opened this issue Oct 13, 2020 · 6 comments

Comments

@daaanigm
Copy link

daaanigm commented Oct 13, 2020

Bug description:
Upload files don't work properly in Android, the app is crashing while I am trying to select a file, shot a photo or video, or only opening the selector modal and closing it.

To Reproduce:
Use this example:

Expected behavior:
Should select a file from camera or file manager.

Screenshots/Videos:
Oct-13-2020 18-48-57 opening_and_close_modal

Environment:

  • OS: Android
  • OS version: 10
  • react-native version: 0.62.2
  • react-native-webview version: Tested in some versions (latest too)
@daaanigm
Copy link
Author

I only could log an error while I was debugging this problem, I think could be helpful

Uncaught Error: Extension context invalidated. at Object.value [as sendMessage] (polyfill.js:124) at HTMLDocument.<anonymous> (include.postload.js:683) value @ polyfill.js:124 (anonymous) @ include.postload.js:683

@daaanigm
Copy link
Author

daaanigm commented Oct 14, 2020

Error while getting photo from camera and press ✔️ :

D/EGL_emulation: eglMakeCurrent: 0xebb33440: ver 3 0 (tinfo 0xc7496200)
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.appsandbox.app, PID: 14123
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { }} to activity {com.appsandbox.app/com.mobile.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void com.facebook.react.bridge.Promise.reject(java.lang.String, java.lang.String)' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:4845)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4886)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'void com.facebook.react.bridge.Promise.reject(java.lang.String, java.lang.String)' on a null object reference
at com.dyneti.dyscan.reactnative.RNDyScanModule.onActivityResult(RNDyScanModule.java:116)
at com.facebook.react.bridge.ReactContext.onActivityResult(ReactContext.java:288)
at com.facebook.react.ReactInstanceManager.onActivityResult(ReactInstanceManager.java:738)
at com.facebook.react.ReactDelegate.onActivityResult(ReactDelegate.java:90)
at com.facebook.react.ReactActivityDelegate.onActivityResult(ReactActivityDelegate.java:112)
at com.facebook.react.ReactActivity.onActivityResult(ReactActivity.java:68)
at android.app.Activity.dispatchActivityResult(Activity.java:8110)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4838)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4886)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
I/Process: Sending signal. PID: 14123 SIG: 9
Disconnected from the target VM, address: 'localhost:8600', transport: 'socket'

@daaanigm
Copy link
Author

daaanigm commented Oct 14, 2020

Error while selecting a photo from gallery:

D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.appsandbox.app, PID: 14474
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.android.providers.media.documents/document/image:25 flg=0x1 }} to activity {com.appsandbox.app/com.mobile.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void com.facebook.react.bridge.Promise.reject(java.lang.String, java.lang.String)' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:4845)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4886)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'void com.facebook.react.bridge.Promise.reject(java.lang.String, java.lang.String)' on a null object reference
at com.dyneti.dyscan.reactnative.RNDyScanModule.onActivityResult(RNDyScanModule.java:116)
at com.facebook.react.bridge.ReactContext.onActivityResult(ReactContext.java:288)
at com.facebook.react.ReactInstanceManager.onActivityResult(ReactInstanceManager.java:738)
at com.facebook.react.ReactDelegate.onActivityResult(ReactDelegate.java:90)
at com.facebook.react.ReactActivityDelegate.onActivityResult(ReactActivityDelegate.java:112)
at com.facebook.react.ReactActivity.onActivityResult(ReactActivity.java:68)
at android.app.Activity.dispatchActivityResult(Activity.java:8110)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4838)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4886) 
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51) 
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 
at android.os.Handler.dispatchMessage(Handler.java:107) 
at android.os.Looper.loop(Looper.java:214) 
at android.app.ActivityThread.main(ActivityThread.java:7356) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 
I/Process: Sending signal. PID: 14474 SIG: 9
Disconnected from the target VM, address: 'localhost:8600', transport: 'socket'

@daaanigm
Copy link
Author

Solved: This was a problem with other library (dyscan) that was overriding the onActivityResult with the same requestCode than react-native-webview library.

@DukazzCruz
Copy link

Solved: This was a problem with other library (dyscan) that was overriding the onActivityResult with the same requestCode than react-native-webview library.

@daaanigm Hi, how can you resolve it?

@daaanigm
Copy link
Author

Solved: This was a problem with other library (dyscan) that was overriding the onActivityResult with the same requestCode than react-native-webview library.

@daaanigm Hi, how can you resolve it?

I needed to modify the library and return a different code in the onActivityResult method.

I don't remember well because I worked on this some years ago but I remember that was the solution

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants