자동 업데이트 처리를 위해 기존 자바에서 쓰던 마켓버전 가져오는 소스를 그대로 가져왔습니다. 디버그로 앱을 설치했을때는 문제없이 잘 동작합니다(현재 마켓 올라가있는 버전 가져오기)
하지만 앱을 마켓에서 다운받으면 계속 앱이 실행이 안되고 튕기길래 뭔가 해서 봣더니 AsycTask에서 에러가 나더라고요.
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:354)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.ExceptionInInitializerError
at org.jsoup.nodes.Entities.access$000(Entities.java:17)
at org.jsoup.nodes.Entities$EscapeMode.<clinit>(Entities.java:20)
at org.jsoup.nodes.Document$OutputSettings.<init>(Document.java:371)
at org.jsoup.nodes.Document.<init>(Document.java:18)
at org.jsoup.parser.TreeBuilder.initialiseParse(TreeBuilder.java:29)
at org.jsoup.parser.TreeBuilder.parse(TreeBuilder.java:42)
at org.jsoup.parser.HtmlTreeBuilder.parse(HtmlTreeBuilder.java:52)
at org.jsoup.parser.Parser.parseInput(Parser.java:30)
at org.jsoup.helper.DataUtil.parseByteData(DataUtil.java:136)
at org.jsoup.helper.HttpConnection$Response.parse(HttpConnection.java:653)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:217)
at
intro.view.IntroActivity$getMarketVersion.doInBackground(IntroActivity.kt:337)
at
intro.view.IntroActivity$getMarketVersion.doInBackground(IntroActivity.kt:323)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
아래는 코드입니다.
SaveMarketVersion = getMarketVersion().execute().get()
private inner class getMarketVersion : AsyncTask<String, String, String>() {
internal var MarketVersion: String = ""
override fun onPreExecute() {
super.onPreExecute()
}
override fun doInBackground(vararg params: String): String {
try {
MarketVersion = Jsoup.connect("https://play.google.com/store/apps/details?id=" + packageName + "&hl=ko")
.timeout(30000)
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.referrer("http://www.google.com")
.get()
.select("div.hAyfc:nth-child(4) > span:nth-child(2) > div:nth-child(1) > span:nth-child(1)")
.first()
.ownText()
} catch (e: Exception) {
e.printStackTrace()
}
return MarketVersion
}
}
에러 위치는 Jsoup.connect() 뒤의 .timeout() .get() .select() 이런 부분에서 납니다.
답변 해주시면 감사하겠습니다.