Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Jacoco凭借Gradle 3.1.0在跑步中崩溃_Android_Android Studio_Gradle_Android Gradle Plugin_Jacoco - Fatal编程技术网

Android Jacoco凭借Gradle 3.1.0在跑步中崩溃

Android Jacoco凭借Gradle 3.1.0在跑步中崩溃,android,android-studio,gradle,android-gradle-plugin,jacoco,Android,Android Studio,Gradle,Android Gradle Plugin,Jacoco,我最近将我的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.NoC

我最近将我的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) 
下面是app 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
文件直接添加到项目中,结果相同。如果有人能帮忙,我将永远感激

我不能说我的答案是决定性的问题,因为我在app build.gradle中看不到您的依赖关系,但在这个最新版本的gradle中,不再支持“compile”。这可能是您的build.gradle或Jacoco的build.gradle的根本原因。

从android studio/idea启动build时,我对gradle 4.6和android plugin 3.1.0也有同样的问题。然而,当我使用gradle构建apk并将其与adb一起部署时,它运行良好

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

编辑:
我已经禁用了instant run,它现在可以正常工作。

只能说明,如果没有
testCoverageEnabled=false
本地变量在调试模式下是未知的。。。这使得调试变得困难。
0.8.2
仍然存在同样的问题。谢谢你,救了我一天。
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 {
...