gpt4 book ai didi

android - 使用Gradle 3.1.0运行时Jacoco崩溃

转载 作者:行者123 更新时间:2023-12-03 05:09:58 26 4
gpt4 key购买 nike

我最近将Android Studio更新到了3.1.0,并且我正在使用Gradle 4.4.0,并且自从更新IDE以来,Jacoco一直存在问题。我遇到运行时崩溃,看起来像:

03-29 15:41:19.944 6629-6629/com.MyApp.pr.redesign.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.MyApp.pr.MyApp.app, PID: 6629
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/jacoco/agent/rt/internal_773e439/Offline;
at com.MyApp.pr.eventcollector.utils.MyApp.$jacocoInit(Unknown Source:13)
at com.MyApp.pr.eventcollector.utils.MyApp.<clinit>(Unknown Source:0)
at com.MyApp.pr.eventcollector.utils.MyApp.setLevel(Unknown Source:0)
at com.MyApp.pr.MyApp.MyApp.setupLogging(MyApp.java:175)
at com.MyApp.pr.MyApp.MyApp.onCreate(MyApp.java:77)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5740)
at android.app.ActivityThread.-wrap1(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.jacoco.agent.rt.internal_773e439.Offline" on path: DexPathList[[zip file "/data/app/com.MyApp.pr.redesign.app-EGnUUyKeM4P-cZrCGsyoUQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.MyApp.pr.redesign.app-EGnUUyKeM4P-cZrCGsyoUQ==/lib/arm64, /data/app/com.MyApp.pr.redesign.app-EGnUUyKeM4P-cZrCGsyoUQ==/base.apk!/lib/arm64-v8a, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.MyApp.pr.eventcollector.utils.MyApp.$jacocoInit(Unknown Source:13) 
at com.MyApp.pr.eventcollector.utils.MyApp.<clinit>(Unknown Source:0) 
at com.MyApp.pr.eventcollector.utils.MyApp.setLevel(Unknown Source:0) 
at com.MyApp.pr.MyApp.MyApp.setupLogging(MyApp.java:175) 
at com.MyApp.pr.MyApp.MyApp.onCreate(MyApp.java:77) 
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1119) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5740) 
at android.app.ActivityThread.-wrap1(Unknown Source:0) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656) 
at android.os.Handler.dispatchMessage(Handler.java:106) 
at android.os.Looper.loop(Looper.java:164) 
at android.app.ActivityThread.main(ActivityThread.java:6494) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

这是我的Gradle文件的样子:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply from: 'gradle/configurations.gradle'
apply from: 'gradle/gradleLintConfig.gradle'

buildscript {

repositories {
google()
jcenter()
mavenCentral()
maven {

}

maven {
url "https://maven.fabric.io/public"
}
}
dependencies {
// 3.0.1 (November 2017) - is a minor update to support Android Studio 3.0.1, and includes general bug fixes and performance improvements.
classpath 'com.android.tools.build:gradle:3.1.0'
classpath 'com.google.gms:google-services:3.2.0'

//Here is Jacoco reference
classpath 'org.jacoco:org.jacoco.core:0.8.0'

// Nebula lint is used as a lint for our Gradle scripts. It helps identify if our
// Gradle scripts have unused dependencies for example. Also, it checks for conformance
// to Gradle standards.
classpath 'com.netflix.nebula:gradle-lint-plugin:9.0.0'

//Crashlytics - Crash reporting
classpath 'io.fabric.tools:gradle:1.25.1'
}
}

allprojects {
repositories {
google()
jcenter()
mavenCentral()
}

}

tasks.withType(JavaCompile) {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

这是应用程序的build.gradle文件:
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply from: "$project.rootDir/gradle/findbugs.gradle"
apply plugin: 'jacoco'

jacoco {
toolVersion = '0.8.0'
}
...
buildTypes {
release {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
minifyEnabled false
}
debug {
versionNameSuffix="-debug"
debuggable true
/**
* Code below is commented out because it causes build issue
* when using newer version of gradle (3.1.0)
*/

testCoverageEnabled true
minifyEnabled false


}
}
}
...
dependencies {
...

}

我不知道问题是什么。我试图将 .jar文件直接添加到项目中,结果相同。如果有人可以帮助,我将永远感激不已!

最佳答案

从android studio / idea启动构建时,gradle 4.6和android plugin 3.1.0存在相同的问题。但是,当我使用gradle构建apk并将其与adb一起部署时,它可以正常工作。

因此,似乎该问题与IDE本身有关。
它没有将正确的jacoco版本打包为apk。

编辑:
我已禁用即时运行,现在可以正常运行了。

关于android - 使用Gradle 3.1.0运行时Jacoco崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49566218/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com