2010-05-11 23 views
6

Warum importieren org.apache.commons.lang.StringUtils kann nicht standardmäßig in android importiert werden.Warum die Klasse "StringUtils Apache" in Android nicht erkannt wird?

Muss ich eine externe Bibliothek hinzufügen? Wo kann ich diese Bibliothek im Internet finden?

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

Ist dies die Seite, wo ich die erforderliche API herunterladen muss: http://commons.apache.org/lang/download_lang.cgi –

Antwort

5

Apache Commons lang ist eine separate Bibliothek. Sie können es here finden.

+0

Ich habe es bereits heruntergeladen. Der heruntergeladene Ordner hat keine JAR-Datei, die ich in mein Android-Projekt aufnehmen kann. Was nun? –

+0

Die JAR-Dateien befinden sich in dieser Zip-Datei: http://apache.mogo.be/commons/lang/binaries/common-lang-2.5-bin.zip – wds

+0

Ok! Heruntergeladen und führte den Code, aber ich bekomme null Zeiger Ausnahme , wenn ich die Codierung Methode in meiner Haupttätigkeit aufrufen? –

7

Android bietet eine Teilmenge dieser Funktionalität in android.text.TextUtils.

Je nachdem, was Sie von StringUtils benötigen, könnte dies eine Option sein. Zum Beispiel, es ist beigetreten, geteilt.

22

Sie sagen nicht, ob Sie Eclipse oder Android Studio verwenden. In Android Studio fügen Sie Ihrer Quellcodedatei

hinzu. In build.gradle, müssen Sie Ihre Abhängigkeit von etwas zu ändern, wie,

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

zu

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

Mit anderen Worten würden Sie auf die Abhängigkeit hinzufügen.

+0

wollen Benutze diese lib nicht. Wenn Sie diese Bibliothek verwenden, wird beim Hochladen von apk in den Google Play Store 0 unterstützte Geräte angezeigt. Verwenden Sie stattdessen compile 'commons-lang: commons-lang: 2.6'. Es klappt. – vikoo

Verwandte Themen