skrapeit / skrape.it

A Kotlin-based testing/scraping/parsing library providing the ability to analyze and extract data from HTML (server & client-side rendered). It places particular emphasis on ease of use and a high level of readability by providing an intuitive DSL. It aims to be a testing lib, but can also be used to scrape websites in a convenient fashion.
https://docs.skrape.it
MIT License
805 stars 59 forks source link

[QUESTION] Crash On Android Studio run by sample example project from skrapeit GitHub repository #164

Closed abhinaik334 closed 2 years ago

abhinaik334 commented 2 years ago

describe what you want to archive As I am a new comer, I tried to run below code example in android studio which crashed and I am having problem with finding running examples of skrapeit extension with android studio on the internet

Code Sample https://github.com/skrapeit/skrape.it/tree/master/examples/android

and crashed report : E/AndroidRuntime: FATAL EXCEPTION: main Process: it.skrape.skrapeitexample, PID: 22886 java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/message/BasicLineFormatter; in class Lorg/apache/http/message/BasicLineFormatter; or its superclasses (declaration of 'org.apache.http.message.BasicLineFormatter' appears in /system/framework/org.apache.http.legacy.boot.jar) at org.apache.http.impl.nio.codecs.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:53) at org.apache.http.impl.nio.codecs.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:57) at org.apache.http.impl.nio.codecs.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:47) at org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionFactory.(ManagedNHttpClientConnectionFactory.java:75) at org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionFactory.(ManagedNHttpClientConnectionFactory.java:83) at org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionFactory.(ManagedNHttpClientConnectionFactory.java:64) at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalConnectionFactory.(PoolingNHttpClientConnectionManager.java:608) at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.(PoolingNHttpClientConnectionManager.java:192) at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.(PoolingNHttpClientConnectionManager.java:176) at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.(PoolingNHttpClientConnectionManager.java:156) at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.(PoolingNHttpClientConnectionManager.java:121) at org.apache.http.impl.nio.client.HttpAsyncClientBuilder.build(HttpAsyncClientBuilder.java:674) at io.ktor.client.engine.apache.ApacheEngine.prepareClient(ApacheEngine.kt:76) at io.ktor.client.engine.apache.ApacheEngine.(ApacheEngine.kt:31) at io.ktor.client.engine.apache.Apache.create(Apache.kt:19) at io.ktor.client.HttpClientKt.HttpClient(HttpClient.kt:42) at it.skrape.fetcher.HttpFetcher.configuredClient(HttpFetcher.kt:28) at it.skrape.fetcher.HttpFetcher.fetch(HttpFetcher.kt:23) at it.skrape.fetcher.HttpFetcher.fetch(HttpFetcher.kt:19) at it.skrape.fetcher.FetcherConverter.fetch(Scraper.kt:30) at it.skrape.fetcher.Scraper.scrape(Scraper.kt:17) at it.skrape.fetcher.ScraperKt.extract(Scraper.kt:77) at it.skrape.skrapeitexample.MainActivityKt$fetch$2$1.invokeSuspend(MainActivity.kt:141) at it.skrape.skrapeitexample.MainActivityKt$fetch$2$1.invoke(Unknown Source:8) at it.skrape.skrapeitexample.MainActivityKt$fetch$2$1.invoke(Unknown Source:4) at it.skrape.fetcher.ScraperKt$skrape$1.invokeSuspend(Scraper.kt:43) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:84) at kotlinx.coroutines.BuildersKtBuildersKt.runBlocking(Builders.kt:59) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at kotlinx.coroutines.BuildersKtBuildersKt.runBlocking$default(Builders.kt:38) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1) at it.skrape.fetcher.ScraperKt.skrape(Scraper.kt:42) at it.skrape.skrapeitexample.MainActivityKt$fetch$2.invokeSuspend(MainActivity.kt:137) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665) E/System: Uncaught exception thrown by finalizer E/System: java.lang.NullPointerException: Attempt to invoke virtual method 'void org.apache.http.impl.nio.conn.CPool.shutdown(long)' on a null object reference at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.shutdown(PoolingNHttpClientConnectionManager.java:233) at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.finalize(PoolingNHttpClientConnectionManager.java:213) at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:250) at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:237) at java.lang.Daemons$Daemon.run(Daemons.java:103) at java.lang.Thread.run(Thread.java:764)

christian-draeger commented 2 years ago

I will close this one since it should be fixed by #166 and all the progress will be visible over their. Let's move related discussions to #166 if you see further input regarding the android bug.