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 Error when I updated my android sdk platform from 28 to 29 #263

Open
newbie10003 opened this issue May 12, 2020 · 6 comments
Open

Comments

@newbie10003
Copy link

newbie10003 commented May 12, 2020

Which platform(s) does your issue occur on?

  • Android version 10 (with SDK platform tools 28)
  • iOS

Please, provide the following version numbers that your issue occurs with:

  • CLI: (run tns --version to fetch it)
    6.0.5
  • Cross-platform modules: (check the 'version' attribute in the
    node_modules/tns-core-modules/package.json file in your project)
    6.5.1
  • Runtime(s): (look for the "tns-android" and "tns-ios" properties in the package.json file of your project)
    "tns-ios": {
    "version": "5.3.1"
    },
    "tns-android": {
    "version": "6.5.0"
    }
  • Plugin(s): (look for the version numbers in the package.json file of your
    project and paste your dependencies and devDependencies here)
    "nativescript-background-http": "^4.2.1"

Please, tell us how to recreate the issue in as much detail as possible.

Describe the steps to reproduce it.

Upload keeps on error, but it was working when my android sdk platform is 28 but error after I updated it to 29.

uploaderror

@newbie10003 newbie10003 changed the title Upload Error and Redirect is not working (for iOS) Upload Error when I updated my android sdk platform from 28 to 29 May 14, 2020
@smorcuend
Copy link

It's seem likes authorization header is missing in your request.

@RohanPhpDev
Copy link

I also have a same error. Code work in api level 28 and below fine but in api level 29 its shows upload error.
my code is:
context
.authorize()
.then(function() {
return context.present();
})
.then(function(selection) {

      selection.forEach(function(selected) {
          var file =  selected.android;
          var name = file.substr(file.lastIndexOf("/") + 1);
          var fileExt=file.substr(file.lastIndexOf(".") + 1);
          
          var session = bghttp.session("image-upload");
          var request = {
                  url: "**************product/upload_gallery",
                  method: "POST",
                  headers: {
                      "Content-Type": "application/octet-stream",
                      "file_name":name,
                      "file_ext":fileExt,
                      "post":that.post_id
                  },
                  description: "Uploading " + name,
                  androidNotificationTitle: 'Uploading Product Image',
                  androidDisplayNotificationProgress:true
              };
          
          var task = session.uploadFile(file, request); 
          task.on("responded", (e) => {
            let res=JSON.parse(e.data);
           
          });
          task.on("progress", (e) => {
             that.isUploading=true;
          });
          task.on("complete", (e) => {
            that.isUploading=false;
            that.fetch_gallery(that.post_id);
          });
          
      });
  }).catch(function (e) {
      console.log(e);
});

@newbie10003
Copy link
Author

It's seem likes authorization header is missing in your request.

We already include authorization header but still not working

@danieledivito
Copy link

Same error for me, no trouble using API level 28, but getting exactly the same error with 29. I get an error in upload notification tray too.
It seems that android is stopping the upload for some reason. I gave a look at 29 release note and breaking changes but nothing about permission on upload seems to be changed.
Does anybody found a workaround?

@danieledivito
Copy link

I think I found out why of this problem.
This plugin uses an android library that is targeted as follow:
<uses-sdk android:minSdkVersion="17" android:targetSdkVersion="28" />
So that's why of the error.
I saw that this library has new version targeting from 21 to 29
but I guess will not be easy to include it cause it's a new major release

@EagleEye25
Copy link

EagleEye25 commented Aug 27, 2020

i also experienced this issue, when targeting SDK 29 rather than 28
i found that adding android:requestLegacyExternalStorage="true" to the AndroidManifest.xml file solved the issue, and images are now able to be uploaded again

<application
		android:requestLegacyExternalStorage="true"

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

No branches or pull requests

5 participants