无法在 Android Studio 中使用 jsoup

Posted

技术标签:

【中文标题】无法在 Android Studio 中使用 jsoup【英文标题】:Cannot use jsoup in Android Studio 【发布时间】:2018-06-27 21:54:49 【问题描述】:

我尝试使用 video 安装 jsoup

然后,一堆问题接踵而至:

first thing

happened twice, for other files

fixed by ending java in task manager

fixed by clicking run after clean

修复所有这些后,我尝试运行我的测试应用(这是我的 MainActivity)

package babis.querytest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import java.io.IOException;

public class MainActivity extends AppCompatActivity 

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.i("qt","before");
    try 
        Log.i("qt","before1");
        Document doc= Jsoup.connect("http://www.google.com").get();
        Log.i("qt","after0");
     catch (IOException e) 

    
    Log.i("qt","after");


我的 Logcat 是这个

01-18 20:05:38.758 17236-17236/? I/art: 后期启用 -Xcheck:jni 01-18 20:05:39.040 17236-17236/babis.querytest W/art: 失败的 execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction- set-variant=generic --instruction-set-features=default --dex-file=/data/app/babis.querytest-1/split_lib_dependencies_apk.apk --oat-file=/data/dalvik-cache/arm64/data @app@babis.querytest-1@split_lib_dependencies_apk.apk@classes.dex) 因为非0退出状态 01-18 20:05:39.323 17236-17236/babis.querytest W/art: 失败的 execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction- set-variant=generic --instruction-set-features=default --dex-file=/data/app/babis.querytest-1/split_lib_slice_0_apk.apk --oat-file=/data/dalvik-cache/arm64/data @app@babis.querytest-1@split_lib_slice_0_apk.apk@classes.dex) 因为非0退出状态 01-18 20:05:39.398 17236-17236/babis.querytest W/art: 失败的 execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction- set-variant=generic --instruction-set-features=default --dex-file=/data/app/babis.querytest-1/split_lib_slice_1_apk.apk --oat-file=/data/dalvik-cache/arm64/data @app@babis.querytest-1@split_lib_slice_1_apk.apk@classes.dex) 因为非0退出状态 01-18 20:05:39.460 17236-17236/babis.querytest W/art: 失败的 execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction- set-variant=generic --instruction-set-features=default --dex-file=/data/app/babis.querytest-1/split_lib_slice_2_apk.apk --oat-file=/data/dalvik-cache/arm64/data @app@babis.querytest-1@split_lib_slice_2_apk.apk@classes.dex) 因为非0退出状态 01-18 20:05:39.530 17236-17236/babis.querytest W/art:执行失败(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction- set-variant=generic --instruction-set-features=default --dex-file=/data/app/babis.querytest-1/split_lib_slice_3_apk.apk --oat-file=/data/dalvik-cache/arm64/data @app@babis.querytest-1@split_lib_slice_3_apk.apk@classes.dex) 因为非0退出状态 01-18 20:05:39.610 17236-17236/babis.querytest W/art: 失败的 execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction- set-variant=generic --instruction-set-features=default --dex-file=/data/app/babis.querytest-1/split_lib_slice_4_apk.apk --oat-file=/data/dalvik-cache/arm64/data @app@babis.querytest-1@split_lib_slice_4_apk.apk@classes.dex) 因为非0退出状态 01-18 20:05:39.688 17236-17236/babis.querytest W/art: 失败的 execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction- set-variant=generic --instruction-set-features=default --dex-file=/data/app/babis.querytest-1/split_lib_slice_5_apk.apk --oat-file=/data/dalvik-cache/arm64/data @app@babis.querytest-1@split_lib_slice_5_apk.apk@classes.dex) 因为非0退出状态 01-18 20:05:39.760 17236-17236/babis.querytest W/art: 失败的 execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction- set-variant=generic --instruction-set-features=default --dex-file=/data/app/babis.querytest-1/split_lib_slice_6_apk.apk --oat-file=/data/dalvik-cache/arm64/data @app@babis.querytest-1@split_lib_slice_6_apk.apk@classes.dex) 因为非0退出状态 01-18 20:05:39.825 17236-17236/babis.querytest W/art: 失败的 execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction- set-variant=generic --instruction-set-features=default --dex-file=/data/app/babis.querytest-1/split_lib_slice_7_apk.apk --oat-file=/data/dalvik-cache/arm64/data @app@babis.querytest-1@split_lib_slice_7_apk.apk@classes.dex) 因为非0退出状态 01-18 20:05:39.898 17236-17236/babis.querytest W/art: 失败的 execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction- set-variant=generic --instruction-set-features=default --dex-file=/data/app/babis.querytest-1/split_lib_slice_8_apk.apk --oat-file=/data/dalvik-cache/arm64/data @app@babis.querytest-1@split_lib_slice_8_apk.apk@classes.dex) 因为非0退出状态 01-18 20:05:39.962 17236-17236/babis.querytest W/art: 失败的 execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction- set-variant=generic --instruction-set-features=default --dex-file=/data/app/babis.querytest-1/split_lib_slice_9_apk.apk --oat-file=/data/dalvik-cache/arm64/data @app@babis.querytest-1@split_lib_slice_9_apk.apk@classes.dex) 因为非0退出状态 01-18 20:05:39.964 17236-17236/babis.querytest W/系统:类加载器引用未知路径:/data/app/babis.querytest-1/lib/arm64 01-18 20:05:39.975 17236-17236/babis.querytest I/InstantRun: 启动即时运行服务器: 是主进程 01-18 20:05:40.181 17236-17236/babis.querytest W/art: 在 Android 4.1 之前,方法 android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content .res.ColorStateList, android.graphics.PorterDuff$Mode) 会错误地覆盖 android.graphics.drawable.Drawable 中的包私有方法 01-18 20:05:40.516 17236-17236/babis.querytest I/qt: 之前 01-18 20:05:40.516 17236-17236/babis.querytest I/qt: before1 01-18 20:05:40.897 17236-17236/babis.querytest I/Process:发送信号。 PID:17236 SIG:9

我的 build.gradle 就是这个

apply plugin: 'com.android.application'

android 
compileSdkVersion 26
defaultConfig 
    applicationId "babis.querytest"
    minSdkVersion 23
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

buildTypes 
    release 
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    

packagingOptions 
    exclude 'META-INF/README.md'
    exclude 'META-INF/CHANGES'




dependencies 
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation project(':jsoup-1.11.2')
compile 'org.jsoup:jsoup:1.11.2'


我的清单是这样的:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="babis.querytest">
<uses-permission android:name="android.permission.INTERNET" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

应用程序在 Document 行崩溃。有什么问题?(wifi 工作正常)

【问题讨论】:

有什么问题? 在我的 MainActivity 上,应用程序在创建文档时崩溃(编辑了我的帖子以使其更清晰) 请显示堆栈跟踪。您发布的 logcat 似乎与您的应用或当前问题无关。 它没有显示任何错误或堆栈跟踪,它只是崩溃了 抱歉,视频没有说明我必须使用 AsyncTask,很抱歉浪费您的时间(有人可以结束这个问题吗?) 【参考方案1】:

你必须在异步任务中运行它,而不是在主线程上

 new AsyncTask<Void, Void, YourDataObject>() 
            @Override
            protected YourDataObject doInBackground(Void... params) 
                Document doc= Jsoup.connect("http://www.google.com").get();
                // parse the document here and return what ever data you want
                return myFunData;
            

            @Override
            protected void onPostExecute(YourDataObject data) 
                //update UI based on results of parsing html
            
        .execute((Void) null);

【讨论】:

以上是关于无法在 Android Studio 中使用 jsoup的主要内容,如果未能解决你的问题,请参考以下文章

无法按照 Google“入门”页面中的说明在 Android Studio 中添加地图; Android Studio 报错

在 Android Studio 中使用 ProGuard 时我无法构建应用程序

在 Android Studio 中使用 Retrofit 无法从 000webhost 获得响应

此版本的 Android Studio 无法打开此项目,请使用 Android Studio 4.0 或更高版本重试

无法在Android Studio中解析符号'annotation'?

android studio怎么联网