2010-05-11 16 views
6

Por qué import org.apache.commons.lang.StringUtils no se puede importar en Android de forma predeterminada.¿Por qué la clase StringUtils Apache no se reconoce en Android?

¿Debo incluir una biblioteca externa? Entonces, ¿dónde puedo encontrar esa biblioteca en la 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

¿Es este el sitio donde tengo que descargar la API requerida: http://commons.apache.org/lang/download_lang.cgi –

Respuesta

5

Apache Commons lang es una biblioteca separada. Lo puedes encontrar here.

+0

Ya lo he descargado. La carpeta descargada no tiene ningún archivo jar que pueda incluir en mi proyecto de Android. ¿Qué hacer ahora? –

+0

Los archivos jar están dentro de este archivo zip: http://apache.mogo.be/commons/lang/binaries/commons-lang-2.5-bin.zip – wds

+0

Ok! ¿Descargué y ejecuté el código pero obtengo la excepción de puntero nulo cuando llamo al método de codificación en mi actividad principal? –

7

Android ofrece un subconjunto de esa funcionalidad en android.text.TextUtils.

Dependiendo de lo que necesite de StringUtils, podría ser una opción. Por ejemplo, tiene join, split.

22

No dice si está utilizando Eclipse o Android Studio. En Android Studio, agregaría

import org.apache.commons.lang3.StringUtils; 

al archivo de código fuente. En build.gradle, necesita cambiar su dependencia de algo así como,

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

a

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

En otras palabras, debe agregar a la dependencia.

+0

No use esta lib. Al usar esta lib, al cargar apk a Google play store, se mostrarán 0 dispositivos compatibles. En su lugar, use compilar 'commons-lang: commons-lang: 2.6'. funciona. – vikoo

Cuestiones relacionadas