Picasso: Bonjour, Picasso.load(String path) Crash lorsque le chemin est une chaîne vide " "

Créé le 23 mars 2016  ·  6Commentaires  ·  Source: square/picasso

Peut modifier comme ceci:

public RequestCreator load (chemin de la chaîne) {
//if (chemin == null) {
// retourne nouveau RequestCreator(this, null, 0);
//}
if (TextUtils.isEmpty(chemin)) {
renvoie un nouveau RequestCreator(this, null, 0);
}
si (chemin.trim().longueur() == 0) {
throw new IllegalArgumentException("Le chemin ne doit pas être vide.");
}
return load(Uri.parse(path));
}

Commentaire le plus utile

J'ai rencontré le même problème. Je ne comprends pas pourquoi null et une chaîne vide sont traités différemment. Nous gérons cela dans le code de l'application maintenant, mais je pense qu'il serait préférable de gérer une piqûre vide comme null . Il ne peut pas imaginer une situation où une exception d'exécution vaut mieux que d'ignorer la valeur vide et de charger l'espace réservé.

Si le comportement doit rester le même, il serait bon de le communiquer en ajoutant une déclaration throws aux méthodes.

Tous les 6 commentaires

Une chaîne vide est une entrée intentionnellement erronée. Si vous souhaitez contraindre une chaîne vide à être équivalente à null , vous devez le faire dans votre code d'application avant d'appeler Picasso.

J'ai rencontré le même problème. Je ne comprends pas pourquoi null et une chaîne vide sont traités différemment. Nous gérons cela dans le code de l'application maintenant, mais je pense qu'il serait préférable de gérer une piqûre vide comme null . Il ne peut pas imaginer une situation où une exception d'exécution vaut mieux que d'ignorer la valeur vide et de charger l'espace réservé.

Si le comportement doit rester le même, il serait bon de le communiquer en ajoutant une déclaration throws aux méthodes.

Désolé de commenter un vieux problème mais j'ai rencontré le même problème. Je récupère l'URL d'une API, ces URL sont requises selon mes spécifications et elles seront donc désorganisées dans une chaîne vide.

Certaines des données n'ont pas d'URL et comme il s'agit d'un URI invalide, je m'attendais à ce que Picasso utilise la ressource définie avec RequestCreator.Error() mais à la place, il lève des exceptions.

Donner une chaîne nulle pour l'URI ne lèvera pas d'exception mais il n'expirera jamais, il utilisera la ressource d'espace réservé et il ne permutera jamais vers la ressource d'erreur.

null n'est pas une erreur, c'est donc le comportement que nous attendons, oui.

Le vendredi 3 novembre 2017 à 7h58, Tristan [email protected] a écrit :

Désolé de commenter un vieux problème mais j'ai rencontré le même problème. je suis
récupération d'URL à partir d'une API, ces URL sont requises selon mes spécifications
et ainsi ils seront désorganisés en une chaîne vide.

Certaines des données n'ont pas d'URL et comme il s'agit d'un URI invalide, je
s'attendait à ce que Picasso utilise la Ressource définie avec
RequestCreator.Error() mais à la place, il lève des exceptions.

Donner une chaîne nulle pour l'URI ne lèvera pas d'exception mais cela
n'expire jamais, il utilisera la ressource d'espace réservé et il ne permutera jamais
à la ressource d'erreur.


Vous recevez ceci parce que vous avez modifié l'état d'ouverture/fermeture.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/square/picasso/issues/1326#issuecomment-341727645 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AAEEEW32GMchPg6LZEs8yeva8GCtrZAXks5syyoNgaJpZM4H2tkI
.

D'accord. Comment pourrais-je déclencher une erreur pour obtenir l'image d'erreur si j'ai un URI invalide ?

Dans mon cas d'utilisation, je reçois un URI d'une API, l'URI peut être nul, vide, mal formé ou pointer vers un lien mort. Tous ces cas sont erronés. Mon espace réservé est un spinner animé, donc quand il essaie de télécharger à partir d'un URI valide, nous voyons cette animation.

Cependant, si on me donne un mauvais URI, je veux revenir à une image d'erreur.

Dans tous les cas, mais vide, l'image d'erreur sera affichée car l'URL pourrait
ne pas être récupéré. Si vous voulez que ce comportement soit vide, vérifiez-le vous-même
et définissez l'image d'erreur directement.

Le mercredi 8 novembre 2017 à 8 h 18, Tristan [email protected] a écrit :

D'accord. Comment pourrais-je déclencher une erreur pour obtenir l'image d'erreur si je
avez un URI invalide ?

Dans mon cas d'utilisation, je reçois un URI d'une API, l'URI peut être nul,
vide, malformé ou pointe vers un lien mort. Tous ces cas sont
erroné. Mon espace réservé est un spinner animé donc quand il essaie de
télécharger à partir d'un URI valide, nous voyons cette animation.

Cependant, si on me donne un mauvais URI, je veux revenir à une image d'erreur.


Vous recevez ceci parce que vous avez modifié l'état d'ouverture/fermeture.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/square/picasso/issues/1326#issuecomment-342869069 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AAEEEZSWigKd7d-6zO3kIeiatCS15dBlks5s0dRXgaJpZM4H2tkI
.

Cette page vous a été utile?
0 / 5 - 0 notes