2010-05-11 3 views
6

Pourquoi import org.apache.commons.lang.StringUtils ne peut pas être importé dans android par défaut.Pourquoi la classe StringUtils Apache n'est pas reconnue sous Android?

Dois-je inclure une bibliothèque externe? Alors, où puis-je trouver cette bibliothèque sur le web?

package com.myapps.urlencoding; 

import android.app.Activity; 
import org.apache.commons.lang.StringUtils; 

public class EncodeIdUtil extends Activity { 
    /** Called when the activity is first created. */ 
    private static Long multiplier=Long.parseLong("1zzzz",36); 

     /** 
     * Encodes the id. 
     * @param id the id to encode 
     * @return encoded string 
     */ 
     public static String encode(Long id) { 
      return StringUtils.reverse(Long.toString((id*multiplier), 35)); 
     } 

     /** 
     * Decodes the encoded id. 
     * @param encodedId the encodedId to decode 
     * @return the Id 
     * @throws IllegalArgumentException if encodedId is not a validly encoded id. 
     */ 
     public static Long decode(String encodedId) 
      throws IllegalArgumentException { 
      long product; 
      try { 
       product = Long.parseLong(StringUtils.reverse(encodedId), 35); 
      } catch (Exception e) { 
       throw new IllegalArgumentException(); 
      } 
      if (0 != product % multiplier || product < 0) { 
       throw new IllegalArgumentException(); 
      } 
      return product/multiplier; 
     } 
} 
+0

Est-ce le site où je dois télécharger l'API requise: http://commons.apache.org/lang/download_lang.cgi –

Répondre

5

Apache Commons lang est une bibliothèque distincte. Vous pouvez le trouver here.

+0

Je l'ai déjà téléchargé. Le dossier téléchargé n'a aucun fichier jar que je peux inclure dans mon projet Android. Que faire maintenant? –

+0

Les fichiers jar sont dans ce fichier zip: http://apache.mogo.be/commons/lang/binaries/commons-lang-2.5-bin.zip – wds

+0

Ok! Téléchargé et exécuté le code mais j'obtiens l'exception de pointeur nul quand j'appelle la méthode d'encodage dans mon activité principale? –

7

Android offre un sous-ensemble de cette fonctionnalité dans android.text.TextUtils. En fonction de ce dont vous avez besoin de StringUtils, cela peut être une option. Par exemple, il a rejoint, divisé.

22

Vous ne dites pas si vous utilisez Eclipse ou Android Studio. Dans Android Studio, vous devez ajouter,

import org.apache.commons.lang3.StringUtils; 

à votre fichier de code source. En build.gradle, vous devez changer votre dépendance de quelque chose comme,

dependencies { 
    compile 'com.android.support:support-v4:+' 
} 

à

dependencies { 
    compile 'com.android.support:support-v4:+' 
    compile 'org.apache.commons:commons-lang3:3.0' 
} 

En d'autres termes, vous devez ajouter à la dépendance.

+0

N'utilisez pas cette lib. En utilisant cette lib, Lors du téléchargement apk sur Google Play Store, Il montrera 0 appareils pris en charge. A la place, compilez 'commons-lang: commons-lang: 2.6'. Ça marche. – vikoo

Questions connexes