user1938007
user1938007

Reputation: 459

Project refresh failed - Error:Cause: org/gradle/internal/TrueTimeProvider

Importing this project from github, I've run into this message:

Gradle 'GameOfLife-master' project refresh failed
Error:Cause: org/gradle/internal/TrueTimeProvider

I've tried solutions posted here, cleaned/rebuilt (at least attempted to) the project, invalidated caches and tried a different version of Gradle. None of that worked. Anyone else got any ideas?

Module: app - build.gradle

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.2'
        classpath "com.neenbedankt.gradle.plugins:android-apt:1.8"
        classpath 'com.jakewharton.hugo:hugo-plugin:1.1.0'
        classpath "net.rdrei.android.buildtimetracker:gradle-plugin:0.5.+"
        classpath 'io.fabric.tools:gradle:1.+'
        classpath 'hu.supercluster:paperwork-plugin:1.2.7'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'android-apt'
apply plugin: 'io.fabric'
apply plugin: 'hugo'
apply plugin: "build-time-tracker"
apply plugin: 'hu.supercluster.paperwork'

paperwork {
    set = [
            gitInfo:   gitInfo(),
            gitSha:    gitSha(),
            buildTime: buildTime("yyyy-MM-dd HH:mm:ss", "GMT+01:00")
    ]
}

def versionMajor = 1
def versionMinor = 2
def versionPatch = 0

android {
    compileSdkVersion androidCompileSdkVersion
    buildToolsVersion androidBuildToolsVersion

    defaultConfig {
        applicationId 'hu.supercluster.gameoflife'
        minSdkVersion androidMinSdkVersion
        targetSdkVersion androidTargetSdkVersion

        versionCode versionMajor * 10000 + versionMinor * 100 + versionPatch
        versionName "${versionMajor}.${versionMinor}.${versionPatch}"

        testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
    }

    signingConfigs {
        alpha {}
        beta {}
        release {}
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
            versionNameSuffix "-debug"
            resValue "string", "app_name_for_buildtype", "Game of Life (debug)"
            minifyEnabled false
            testCoverageEnabled = false
        }

        alpha {
            applicationIdSuffix ".alpha"
            versionNameSuffix "-alpha"
            resValue "string", "app_name_for_buildtype", "Game of Life (alpha)"
            minifyEnabled false
            testCoverageEnabled = false
            lintOptions {
                disable 'MissingTranslation'
            }
        }

        beta {
            applicationIdSuffix ".beta"
            versionNameSuffix "-beta"
            resValue "string", "app_name_for_buildtype", "Game of Life (beta)"
            minifyEnabled false
            testCoverageEnabled = false
        }

        release {
            resValue "string", "app_name_for_buildtype", "Game of Life"
            minifyEnabled false
            proguardFile 'proguard-project.txt'
        }
    }

    sourceSets.main {
        // src/gen is the target for generated content like json model
        java.srcDirs += 'build/generated/source/db'
    }

    // avoid errors with message 'Duplicate files copied in APK ...'
    packagingOptions {
        exclude 'LICENSE.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }
}

afterEvaluate {
    def propsFile = rootProject.file('keystore.properties')
    def configName = 'release'

    if (propsFile.exists() && android.signingConfigs.hasProperty(configName)) {
        def props = new Properties()
        props.load(new FileInputStream(propsFile))
        android.signingConfigs[configName].storeFile = rootProject.file(props['storeFile'])
        android.signingConfigs[configName].storePassword = props['storePassword']
        android.signingConfigs[configName].keyAlias = props['keyAlias']
        android.signingConfigs[configName].keyPassword = props['keyPassword']
    }
}

repositories {
    mavenCentral()
    maven { url 'https://maven.fabric.io/public' }
}


dependencies {
    compile 'com.android.support:appcompat-v7:24.2.0'
    compile 'com.android.support:support-annotations:24.2.0'
    compile 'com.android.support:support-v13:24.2.0'
    compile 'com.android.support:support-v4:24.2.0'

    // ---------

    compile 'com.github.tslamic.adn:library:1.0'
    compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') { transitive = true }
    compile 'com.jakewharton.timber:timber:2.5.1'
    compile 'com.squareup:otto:1.3.6'
    compile 'hu.supercluster:paperwork:1.2.7'

    // ---------

    apt "org.androidannotations:androidannotations:" + androidAnnotationsVersion
    compile("org.androidannotations:androidannotations-api:" + androidAnnotationsAPIVersion )

    testCompile 'junit:junit:4.11'
    testCompile 'org.mockito:mockito-core:1.9.5'
    testCompile('com.squareup:fest-android:1.0.+') { exclude module: 'support-v4' }
    testCompile "org.robolectric:robolectric:3.0"

    androidTestCompile 'com.google.guava:guava:14.0.1',
            'com.squareup.dagger:dagger:1.1.0',
            'org.hamcrest:hamcrest-integration:1.1',
            'org.hamcrest:hamcrest-core:1.1',
            'org.hamcrest:hamcrest-library:1.1',
            'com.jakewharton.espresso:espresso:1.1-r3'
}

apt {
    arguments {
        resourcePackageName android.defaultConfig.applicationId
        androidManifestFile variant.outputs[0]?.processResources?.manifestFile
    }
}

apply plugin: 'idea'

idea {
    module {
        //and some extra test source dirs
        testSourceDirs += file('src/test')
    }
}

apply from: 'build-time-tracker.gradle'

Upvotes: 0

Views: 161

Answers (1)

lance-java
lance-java

Reputation: 27996

You could run with --stacktrace to get a full exception stack trace

Gradle has the concept of public API and private API. Basically anything in org.gradle.internal is a part of the private API and the gradle team can change / remove these classes between gradle versions. Ideally plugins should never reference internal classes. Any plugin author referencing internal API's must understand that this code may break with a new release of Gradle.

It looks like one of your plugins is referencing the internal API (org.gradle.internal.TrueTimeProvider) and the plugin was built against one version of Gradle and you are running with a different version of gradle.

To fix, you'll need to determine which plugin is throwing the exception (--stacktrace will help here). Then you'll either need to change the plugin version to one compatible with your version of gradle, or change the gradle version you are running with.

Upvotes: 1

Related Questions