마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

jericho 파싱시 킷캣에서는 안되네요..도와주세요.

0 추천
public class MainActivity extends Activity {

 TextView tv;
 
 public static String getVersion(String strURL){
  Source source;
  String version = "";
  
  try{
   URL url = new URL(strURL);
   source = new Source(url); // 여기에서 에러 발생, 하지만 2.2 프로요에서는 정상 작동
   Element element = null;
   
   List<Element> list = source.getAllElements(HTMLElementName.DIV);  // DIV 엘리먼트를 가져옴
   
   for(int i = 0; i < list.size(); i++){
    element = list.get(i);
    String attributevalue = element.getAttributeValue("itemprop");  // itemprop 자식 엘리먼트 가져옴
    
    if(attributevalue != null){
     if(attributevalue.equals("softwareVersion")){  // itemprop의 자식엘리먼트 중 shoftwareVersion 엘리먼트가 있으면
      TextExtractor textExtractor = element.getTextExtractor();
      version = textExtractor.toString(); // 버전을 가져옴
      
      return version;
     }
    }
   }
  }catch(Exception e){
   return "Error~~~";  // 데이터 파싱 실패시 Error 리턴
  }
  return null;
 }

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  tv = (TextView)findViewById(R.id.par);
  String url = "https://play.google.com/store/apps/details?id=org.childfriend.www"; // 파싱해올 url
  
  tv.setText(getVersion(url));  
  
}
}

위 소스는 구글플레이에서 제가 올린 앱의 버전을 파싱을 해 옵니다.

에뮬로 실행시 2.2 프로요에서는 버전을 정상적으로 파싱을 해 옵니다.

하지만 2.2 이상에서는 Error~~~ 를 띄우네요.

source = new Source(url);  <- 여기에서 에러가 발생이 됩니다.

jericho-android.3.1.jar 파일을 사용해봤으며 최신버전도 사용해보았으나 에러가 발생이되네요.

부디 고수님들의 도움 부탁드립니다.

정윤문경아빠 (180 포인트) 님이 2014년 5월 18일 질문

3개의 답변

0 추천
저도 같은 문제 였는데요... add external jars 하고

프로젝트 libs 폴더에

 

jericho-html-3.3,jar 넣으니까 되었어요

 

전 안드로이드 버전 말고 일반버전 사용했습니당
익명사용자 님이 2014년 5월 27일 답변
0 추천
음.. 로그인을 안했더니 자꾸 스팸 넣으라고 하네;;

추가적인 답변으로는 저는 처음에 프로젝트의 속성에서 ADD External JARs 를 했었는데요

찾아보니 libs 에 넣으라는 답변을 받아서 추가적으로 libs에도 그냥 jar파일 복사 해주었더니

정상 동작 하네요... 혹시 참고될까 답변드립니다.
디날로그 (1,030 포인트) 님이 2014년 5월 27일 답변
0 추천
자답입니다.

Thread 를 이용해서 getVersion 함수를 호출했더니 정상적으로 작동이 됩니다.

이것때문에 오늘 오전에 겨우 해결했네요 -_-;;
익명사용자 님이 2014년 5월 27일 답변
...