Uploaded image for project: 'Apache Cordova'
  1. Apache Cordova
  2. CB-9314

Reading input element using filereader.readAsDataURL returns FileNotFound Exception

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Not A Problem
    • 3.4.0
    • None
    • None
    • Android 5.0

    Description

      Added a simple FileReader to index.html to select an image and display it, but always errors out.

      Expected:

      • Click 'Choose File' button
      • Select an image file
      • Get 2 alerts, 1 for entering the Openfile function, and the second for entering Onload
      • Image should display

      Actual:

      • Never gets to the Onload function, so image doesn't display
      • Goes to onError

      I have traced through the native side in CordovaActivity and CordovaChromeClient and it seems to get the result URL fine, but when it returns to the javascript side, the result ends up being null. I'm not too familiar with how the bridging works, so maybe there is some type of disconnect there.

      In the log, I am using the Cordova File plugin, but the issue still occurs even if I am not using the plugin. Everything is the same with or without the plugin, native side gets the result, but javascript side gets null.

      <input type='file' accept='image/*' onchange='openFile(event)'><br>
      
      <img id='output'>
      
      <script>
          var openFile = function(event) {
              alert("Inside Openfile Function");
              var input = event.target;
      
              var reader = new FileReader();
      
              reader.onload = function(){
                  alert("Inside Onload Function");
                  var dataURL = reader.result;
      
                  var output = document.getElementById('output');
                  output.src = dataURL;
              };
      
      	reader.onerror = function() {
      	    console.log('An error occurred while reading a file.');
      	    console.log(reader.error);
      	};
      	
      	reader.readAsDataURL(input.files[0]);
          };
      </script>
      

      Log:

      07-02 18:38:35.446: I/chromium(11741): [INFO:CONSOLE(24)] "The key "target-densitydpi" is not supported.", source: file:///android_asset/www/index.html (24)
      07-02 18:38:35.722: I/chromium(11741): [INFO:CONSOLE(1088)] "adding proxy for Contacts", source: file:///android_asset/www/cordova.js (1088)
      07-02 18:38:35.777: D/CordovaNetworkManager(11741): Connection Type: none
      07-02 18:38:35.837: I/chromium(11741): [INFO:CONSOLE(47)] "Received Event: deviceready", source: file:///android_asset/www/js/index.js (47)
      07-02 18:38:42.042: I/ActivityManager(508): START u0 {act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras)} from uid 10289 on display 0
      07-02 18:38:42.081: I/ActivityManager(508): Start proc android:ui for activity android/com.android.internal.app.ChooserActivity: pid=12212 uid=1000 gids={41000, 9997, 1028, 1015, 3002, 3001, 3003} abi=arm64-v8a
      07-02 18:38:42.146: D/ResolverActivity(12212): sinceTime=1434667122141
      07-02 18:38:42.154: I/ActivityManager(508): START u0 {act=android.intent.action.GET_CONTENT cat=[android.intent.category.OPENABLE] typ=*/* flg=0x3000000 cmp=com.android.documentsui/.DocumentsActivity} from uid 10289 on display 0
      07-02 18:38:42.197: I/ActivityManager(508): Start proc com.android.documentsui for activity com.android.documentsui/.DocumentsActivity: pid=12239 uid=10039 gids={50039, 9997} abi=arm64-v8a
      07-02 18:38:42.211: I/art(208): Explicit concurrent mark sweep GC freed 704(30KB) AllocSpace objects, 0(0B) LOS objects, 39% free, 6MB/11MB, paused 102us total 16.967ms
      07-02 18:38:42.225: I/art(208): Explicit concurrent mark sweep GC freed 7(240B) AllocSpace objects, 0(0B) LOS objects, 40% free, 6MB/11MB, paused 64us total 12.789ms
      07-02 18:38:42.241: I/art(208): Explicit concurrent mark sweep GC freed 5(160B) AllocSpace objects, 0(0B) LOS objects, 40% free, 6MB/11MB, paused 61us total 11.713ms
      07-02 18:38:42.334: I/ActivityManager(508): Start proc com.android.externalstorage for content provider com.android.externalstorage/.ExternalStorageProvider: pid=12270 uid=10006 gids={50006, 9997, 1028, 1015, 1023} abi=arm64-v8a
      07-02 18:38:42.365: D/OpenGLRenderer(12239): Render dirty regions requested: true
      07-02 18:38:42.377: D/Atlas(12239): Validating map...
      07-02 18:38:42.414: D/ExternalStorage(12270): After updating volumes, found 1 active roots
      07-02 18:38:42.459: W/EventLoggerService(4267): Unable to send logs Error code: 262160 | The connection was not attempted due to lack of network connectivity.
      07-02 18:38:42.474: I/wpa_supplicant(820): wlan0: CTRL-EVENT-SCAN-STARTED 
      07-02 18:38:42.477: I/OpenGLRenderer(12239): Initialized EGL, version 1.4
      07-02 18:38:42.591: I/GLSUser(18183): [GLSUser] getTokenFromCache: [account: <ELLIDED:-25567>, callingPkg: com.google.android.googlequicksearchbox, service: oauth2:https://www.googleapis.com/auth/googlenow]
      07-02 18:38:42.594: I/Auth.Core(18183): [TokenCache] Missing snowballing token: no granted scopes set.
      07-02 18:38:42.633: I/ActivityManager(508): Start proc com.google.android.apps.docs for content provider com.google.android.apps.docs/.storagebackend.StorageBackendContentProvider: pid=12307 uid=10040 gids={50040, 9997, 1028, 3003, 1015} abi=armeabi-v7a
      07-02 18:38:42.804: D/OpenGLRenderer(12239): Enabling debug mode 0
      07-02 18:38:42.918: I/Choreographer(12239): Skipped 30 frames!  The application may be doing too much work on its main thread.
      07-02 18:38:42.965: I/art(508): Explicit concurrent mark sweep GC freed 37994(2MB) AllocSpace objects, 94(7MB) LOS objects, 30% free, 37MB/53MB, paused 4.302ms total 249.177ms
      07-02 18:38:42.984: I/ActivityManager(508): Displayed com.android.documentsui/.DocumentsActivity: +825ms (total +935ms)
      07-02 18:38:43.003: W/IInputConnectionWrapper(11741): showStatusIcon on inactive InputConnection
      07-02 18:38:43.009: I/Keyboard.Facilitator(6721): onFinishInput()
      07-02 18:38:43.023: I/ActivityManager(508): Killing 8196:com.google.android.apps.cloudprint/u0a35 (adj 15): empty #17
      07-02 18:38:43.082: W/libprocessgroup(508): failed to open /acct/uid_10035/pid_8196/cgroup.procs: No such file or directory
      07-02 18:38:43.098: E/PhotosPlugin(12307): Loading PhotosPlugin
      07-02 18:38:43.333: E/WifiConfigStore(508): setLastSelectedConfiguration -1
      07-02 18:38:43.427: I/GAv4(12307): Google Analytics 7.5.71 is starting up. To enable debug logging on a device run:
      07-02 18:38:43.427: I/GAv4(12307):   adb shell setprop log.tag.GAv4 DEBUG
      07-02 18:38:43.427: I/GAv4(12307):   adb logcat -s GAv4
      07-02 18:38:43.450: W/GAv4(12307): AnalyticsReceiver is not registered or is disabled. Register the receiver for reliable dispatching on non-Google Play devices. See http://goo.gl/8Rd3yj for instructions.
      07-02 18:38:43.477: W/GAv4(12307): CampaignTrackingReceiver is not registered, not exported or is disabled. Installation campaign tracking is not possible. See http://goo.gl/8Rd3yj for instructions.
      07-02 18:38:43.498: W/GAv4(12307): AnalyticsService not registered in the app manifest. Hits might not be delivered reliably. See http://goo.gl/8Rd3yj for instructions.
      07-02 18:38:43.664: D/Documents(12239): Update found 7 roots in 1381ms
      07-02 18:38:43.683: I/ActivityManager(508): Killing 8238:com.google.android.apps.walletnfcrel/u0a24 (adj 15): empty #17
      07-02 18:38:43.704: W/Documents(12239): Failed to restore stack: java.io.FileNotFoundException: Failed to find matching root for null
      07-02 18:38:43.802: V/GLSActivity(18183): AuthDelegateWrapperCreated with selected intent: Intent { cmp=com.google.android.gms/.auth.DefaultAuthDelegateService }
      07-02 18:38:43.803: D/Documents(12239): Current stack: 
      07-02 18:38:43.804: D/Documents(12239):  * null
      07-02 18:38:43.814: W/libprocessgroup(508): failed to open /acct/uid_10024/pid_8238/cgroup.procs: No such file or directory
      07-02 18:38:43.853: D/Documents(12239): Update found 7 roots in 153ms
      07-02 18:38:43.922: W/ResourceType(12239): No package identifier when getting value for resource number 0x00000000
      07-02 18:38:43.922: W/PackageManager(12239): Failure retrieving resources for com.google.android.apps.photos: Resource ID #0x0
      07-02 18:38:44.011: I/Keyboard.Facilitator(6721): onFinishInput()
      07-02 18:38:44.039: W/ResourceType(12239): No package identifier when getting value for resource number 0x00000000
      07-02 18:38:44.039: W/PackageManager(12239): Failure retrieving resources for com.google.android.apps.photos: Resource ID #0x0
      07-02 18:38:44.086: D/Documents(12239): Before filtering 0, after 0
      07-02 18:38:44.087: D/Documents(12239): Before filtering 3, after 3
      07-02 18:38:44.088: D/Documents(12239): Before filtering 4, after 1
      07-02 18:38:44.088: D/Documents(12239): Before filtering 6, after 0
      07-02 18:38:44.088: D/Documents(12239): Found 4 of 4 recent queries done
      07-02 18:38:48.391: D/Documents(12239): onFinished() [content://com.android.providers.media.documents/document/image%3A176]
      07-02 18:38:48.406: D/CordovaActivity(11741): Request code = 5173
      07-02 18:38:48.406: D/CordovaActivity(11741): did we get here?
      07-02 18:38:48.406: D/CordovaActivity(11741): result = content://com.android.providers.media.documents/document/image%3A176
      07-02 18:38:48.439: I/ActivityManager(508): Killing 8265:com.google.android.apps.magazines/u0a62 (adj 15): empty #17
      07-02 18:38:48.447: I/Keyboard.Facilitator(6721): onFinishInput()
      07-02 18:38:48.458: D/OpenGLRenderer(12239): endAllStagingAnimators on 0x55a29f2a60 (ListView) with handle 0x55a2b9c530
      07-02 18:38:48.512: W/libprocessgroup(508): failed to open /acct/uid_10062/pid_8265/cgroup.procs: No such file or directory
      07-02 18:38:49.513: I/chromium(11741): [INFO:CONSOLE(64)] "An error occurred while reading a file.", source: file:///android_asset/www/index.html (64)
      07-02 18:38:49.513: I/chromium(11741): [INFO:CONSOLE(65)] "[object FileError]", source: file:///android_asset/www/index.html (65)
      07-02 18:38:49.514: W/InputMethodManagerService(508): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@133d8b99 attribute=null, token = android.os.BinderProxy@9d0b452
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            ktop500 Karen Tran
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: