Failed transformation

Ouverte
#153 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
android, java, kotlin
Domaine
mobile-dev

Piste de recherche

Commencez par Util.java:63, où la trace de la pile montre que les paramètres d’upload de transformation sont construits, puis suivez Uploader.java:51 et le chemin d’upload de MediaManager. Reproduisez l’exemple Kotlin avec Cloudinary Android SDK 2.3.1 et vérifiez qu’un upload de transformation ne lève plus de ClassCastException et se comporte conformément à la documentation.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Describe the bug in a sentence or two.

I get an java.lang.ClassCastException: com.cloudinary.Transformation cannot be cast to java.lang.String error when attempting a transformation:
val transformation = Transformation<Transformation<*>>().width(1280).crop("scale")

Issue Type (Can be multiple)

[ ] Build - Can’t install or import the SDK
[ ] Performance - Performance issues
[x] Behaviour - Functions aren’t working as expected (Such as generate URL)
[x] Documentation - Inconsistency between the docs and behaviour
[ ] Other (Specify)

Steps to reproduce

val transformation = Transformation<Transformation<*>>().width(1280)
        MediaManager.get().upload(uri)
            .option(TRANSFORMATION, transformation)
            .option(SIGNATURE, photoSignature.signature)
            .option(TIMESTAMP, photoSignature.timestamp)
            .option(PUBLIC_ID, photoSignature.publicId)
            .option(TAG, tag)
            .callback(object : UploadCallback {
                override fun onStart(requestId: String?) {
                    callback.onStart()
                }

                override fun onProgress(requestId: String?, bytes: Long, totalBytes: Long) {
                    callback.onProgress(bytes = bytes, totalBytes = totalBytes)
                }

                override fun onSuccess(requestId: String?, resultData: MutableMap<Any?, Any?>?) {
                    callback.onSuccess(resultData)
                }

                override fun onError(requestId: String?, error: ErrorInfo?) {
                    callback.onError(Throwable("CODE ${error?.code}: ${error?.description}"))
                }

                override fun onReschedule(requestId: String?, error: ErrorInfo?) {
                    callback.onError(Throwable("CODE ${error?.code}: ${error?.description}"))
                }
            })
            .dispatch()

Error screenshots or Stack Trace (if applicable)

java.lang.ClassCastException: com.cloudinary.Transformation cannot be cast to java.lang.String at com.cloudinary.Util.buildUploadParams(Util.java:63) at com.cloudinary.Uploader.buildUploadParams(Uploader.java:51) at com.cloudinary.Uploader.uploadLargeParts(Uploader.java:160) at com.cloudinary.Uploader.uploadLarge(Uploader.java:149) at com.cloudinary.android.DefaultRequestProcessor.doProcess(DefaultRequestProcessor.java:223) at com.cloudinary.android.DefaultRequestProcessor.processRequest(DefaultRequestProcessor.java:87) at com.cloudinary.android.MediaManager.processRequest(MediaManager.java:441) at com.cloudinary.android.AndroidJobStrategy$UploadJob.doWork(AndroidJobStrategy.java:163) at androidx.work.Worker$1.run(Worker.java:86) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) at java.lang.Thread.run(Thread.java:1012)

Build System

[ ] Maven
[x] Gradle
[ ] Other (Specify)

Is the issue reproducible only on a specific device?

[x] No
[ ] Yes (specify model + Android version + vendor build number, if applicable)

Versions and Libraries (fill in the version numbers)

Cloudinary Android SDK version 2.3.1
Android version - 33
Kotlin version - 1.8.10
JVM (of the dev environment) - 17
Gradle - 8.0

Langage dominant
Java
Étoiles
69
Forks
60
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

  • Aucun Dockerfile ni fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de cloudinary/cloudinary_android

Toutes les issues de cloudinary/cloudinary_android

Issues similaires

Plus d'issues Java

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.