Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.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 Gradle为0.10.0的Jacoco:远程对象不';不存在_Android_Testing_Android Gradle Plugin_Jacoco_Build.gradle - Fatal编程技术网

Android Gradle为0.10.0的Jacoco:远程对象不';不存在

Android Gradle为0.10.0的Jacoco:远程对象不';不存在,android,testing,android-gradle-plugin,jacoco,build.gradle,Android,Testing,Android Gradle Plugin,Jacoco,Build.gradle,2014年10月21日更新: 已使用buildtools 21确认该问题已修复 2014年9月18日更新: 已将更新为FutureRelease 更新: 我听说这可能不适用于Dagger,因为浓缩咖啡使用Dagger,这可能会导致一些问题。给格拉德尔队打了个电话 谷歌最近更新了他们的网站。他们现在提供的服务之一是Jacoco支持。为此,他们提到了以下设置: testCoverageEnabled = true 进入您的构建类型。现在,当我运行浓缩咖啡测试(使用connectedCheck)时

2014年10月21日更新: 已使用buildtools 21确认该问题已修复

2014年9月18日更新: 已将更新为
FutureRelease

更新: 我听说这可能不适用于Dagger,因为浓缩咖啡使用Dagger,这可能会导致一些问题。给格拉德尔队打了个电话


谷歌最近更新了他们的网站。他们现在提供的服务之一是Jacoco支持。为此,他们提到了以下设置:

testCoverageEnabled = true
进入您的构建类型。现在,当我运行浓缩咖啡测试(使用
connectedCheck
)时,当我开始运行
:connectedAndroidTest
任务时,我得到了一个正确的错误,该任务说明:

Tests on HTC One - 4.2.2 - API 17 - 1080x1920 - 4.2.2 failed: Instrumentation run failed due to 'java.lang.VerifyError'
01:38:31 E/Device: Error during Sync: Remote object doesn't exist!
null
java.io.IOException: com.android.ddmlib.SyncException: Remote object doesn't exist!
at com.android.builder.testing.ConnectedDevice.pullFile(ConnectedDevice.java:114)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:158)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:42)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.ddmlib.SyncException: Remote object doesn't exist!
at com.android.ddmlib.SyncService.pullFile(SyncService.java:314)
at com.android.ddmlib.Device.pullFile(Device.java:849)
at com.android.builder.testing.ConnectedDevice.pullFile(ConnectedDevice.java:107)
... 8 more
:connectedAndroidTest FAILED
以下是我在
build.gradle
文件中更改的部分:

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:0.10.+'
        ...
    }
    ...
}

android {
    buildTypes {
        debug {
            testCoverageEnabled = true
            ...
        }
        ....
    }
    ...
}
是否有任何其他
build.gradle
文件需要更新以使Jacoco正常工作

该错误指出“远程对象”不存在。通常,我将此归因于模拟器不同步,重新启动将修复此问题。但我试过了,也没用。你知道错误在告诉我什么吗?

试试这个

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.13.0'
    }
}

repositories {
    mavenCentral()
}
apply plugin: 'com.android.application'
apply plugin: 'jacoco'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.1" // Must Require

    defaultConfig {
        applicationId "com.packagename" <Change it>
        minSdkVersion 11
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"

    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }

    lintOptions {
        abortOnError false
    }

    buildTypes {
        debug {
            testCoverageEnabled true
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

jacoco {
    toolVersion = "0.7.1.201405082137"
}
buildscript{
存储库{
mavenCentral()
}
依赖关系{
classpath'com.android.tools.build:gradle:0.13.0'
}
}
存储库{
mavenCentral()
}
应用插件:“com.android.application”
应用插件:“jacoco”
安卓{
编译DK21版
buildToolsVersion“21.1.1”//必须要求
默认配置{
applicationId“com.packagename”
明斯克版本11
targetSdkVersion 21
版本代码1
版本名称“1.0”
}
包装选项{
排除“META-INF/依赖项”
排除“META-INF/许可证”
排除“META-INF/LICENSE.txt”
排除“META-INF/通知”
排除“META-INF/NOTICE.txt”
排除“META-INF/services/javax.annotation.processing.Processor”
}
林特选项{
异常错误
}
建筑类型{
调试{
testCoverageEnabled true
}
}
}
依赖关系{
编译文件树(目录:“libs”,包括:['*.jar'])
}
杰科科{
toolVersion=“0.7.1.201405082137”
}

我遇到了同样的问题(不使用匕首或浓缩咖啡)。测试在真实设备上运行(Nexus4,4.3.1)。我在logcat中看到CoverageTransformer(JaCoCo代理的一部分)的ClassNotFoundException。pullFile方法失败了,我认为它试图拉取一个它没有权限的文件,在模拟器上尝试(因为它充当根设备),看看它是否可以拉取该文件。这也是我的第一个想法,但是我使用了一个根设备,并在根模式下重新启动了adb,仍然看到相同的错误。有人找到了解决方法吗?我在根设备和模拟器上都遇到了相同的问题。您仍然面临0.12.2吗?