2010-05-11 15 views
6

Tại sao mặc định nhập org.apache.commons.lang.StringUtils không thể được nhập trong Android theo mặc định.Tại sao StringUtils lớp Apache không được nhận ra trong Android?

Tôi có phải bao gồm thư viện bên ngoài không? Sau đó, tôi có thể tìm thấy thư viện đó trên web ở đâu?

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

Đây có phải là trang web mà tôi phải tải xuống API bắt buộc: http://commons.apache.org/lang/download_lang.cgi –

Trả lời

5

Apache Commons lang là một thư viện riêng biệt. Bạn có thể tìm thấy nó here.

+0

Tôi đã tải xuống chưa. Thư mục tải xuống không có bất kỳ tệp jar nào mà tôi có thể đưa vào dự án Android của tôi. Làm gì bây giờ? –

+0

Tệp jar nằm bên trong tệp zip này: http://apache.mogo.be/commons/lang/binaries/commons-lang-2.5-bin.zip – wds

+0

Ok! Tải xuống và chạy mã nhưng tôi nhận được ngoại lệ con trỏ null khi tôi gọi phương thức mã hóa trong hoạt động chính của mình? –

7

Android cung cấp một tập con của chức năng đó trong android.text.TextUtils.

Tùy thuộc vào những gì bạn cần từ StringUtils, đó có thể là một tùy chọn. Ví dụ: nó đã tham gia, chia tách.

22

Bạn không nói bạn đang sử dụng Eclipse hay Android Studio. Trong Android Studio, bạn sẽ thêm,

import org.apache.commons.lang3.StringUtils; 

vào tệp mã nguồn của bạn. Trong build.gradle, bạn cần thay đổi phụ thuộc của bạn từ một cái gì đó như thế nào,

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

để

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

Nói cách khác, bạn sẽ thêm vào phụ thuộc.

+0

Không sử dụng lib này. Bằng cách sử dụng lib này, Trong khi tải apk lên Google play store, nó sẽ hiển thị 0 thiết bị được hỗ trợ. Thay vào đó, hãy sử dụng biên dịch 'commons-lang: commons-lang: 2.6'. nó hoạt động. – vikoo

Các vấn đề liên quan