viromedia / viro

ViroReact: AR and VR using React Native
MIT License
2.31k stars 483 forks source link

D8: Type <Class X> was not found, it is required for default or static interface methods desugaring <Class Y>? #607

Open loic-lopez opened 5 years ago

loic-lopez commented 5 years ago

Environment

Please provide the following information about your environment:

  1. Development OS: Mac
  2. Device OS & Version: Android build version : classpath 'com.android.tools.build:gradle:3.3.2'
  3. Version: ViroReact version and React Native version : viro-react:2.14.0, react-native: 0.59.5

Description

When i build my application with release mode multiple warnings are logged to the console:

~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Vr180Creator$VideoQuality` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Vr180Creator$VideoConvert com.google.common.logging.nano.Vr$VREvent$Vr180Creator$VideoConvert.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$SelectionAction$ActionOutcome` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$SelectionAction com.google.common.logging.nano.Vr$VREvent$Eva$SelectionAction.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$SelectionAction$ActionEntryPoint` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$SelectionAction com.google.common.logging.nano.Vr$VREvent$Eva$SelectionAction.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$Pairing$Outcome` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$Pairing com.google.common.logging.nano.Vr$VREvent$Eva$Pairing.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$FileTransfer$Outcome` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$FileTransfer com.google.common.logging.nano.Vr$VREvent$Eva$FileTransfer.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$FileTransfer$TransferInterface` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$FileTransfer com.google.common.logging.nano.Vr$VREvent$Eva$FileTransfer.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$FileTransfer$FileType` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$FileTransfer com.google.common.logging.nano.Vr$VREvent$Eva$FileTransfer.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$WigglegramGeneration$Status` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$WigglegramGeneration com.google.common.logging.nano.Vr$VREvent$Eva$WigglegramGeneration.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$View$MediaType` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$View com.google.common.logging.nano.Vr$VREvent$Eva$View.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$View$ViewType` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$View com.google.common.logging.nano.Vr$VREvent$Eva$View.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$View$ViewSource` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$View com.google.common.logging.nano.Vr$VREvent$Eva$View.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$View$TriggerAction` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$View com.google.common.logging.nano.Vr$VREvent$Eva$View.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.protobuf.CodedOutputStream` was not found, it is required for default or static interface methods desugaring of `int com.google.common.logging.nano.Vr$VREvent$VrCore$DashboardEvent.computeSerializedSize()`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `logs.proto.wireless.performance.mobile.MemoryMetric$AndroidMemoryStats` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$VrCore$DashboardEvent com.google.common.logging.nano.Vr$VREvent$VrCore$DashboardEvent.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$View$MediaType` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$Delete com.google.common.logging.nano.Vr$VREvent$Eva$Delete.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$View$ViewSource` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$Delete com.google.common.logging.nano.Vr$VREvent$Eva$Delete.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Cyclops$Share$Type` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Cyclops$Share com.google.common.logging.nano.Vr$VREvent$Cyclops$Share.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$CameraFirmwareUpdate$UpdateOutcome` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$CameraFirmwareUpdate com.google.common.logging.nano.Vr$VREvent$Eva$CameraFirmwareUpdate.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`
~/.gradle/caches/transforms-2/files-2.1/b6699b109adb46e60ba2c5aa8d597b18/jars/classes.jar: D8: Type `com.google.common.logging.Vr$VREvent$Eva$ExportMedia$Type` was not found, it is required for default or static interface methods desugaring of `com.google.common.logging.nano.Vr$VREvent$Eva$ExportMedia com.google.common.logging.nano.Vr$VREvent$Eva$ExportMedia.mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano)`

My gradle.properties:

android.useDeprecatedNdk=true
android.enableR8=true
android.enableD8=true

My app/build.gradle:

apply plugin: "com.android.application"

import com.android.build.OutputFile
def enableSeparateBuildPerCPUArchitecture = false

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = false

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "com.app.test"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        multiDexEnabled true
        versionCode 238
        versionName "0.4.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }

    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }

    signingConfigs {
        release {

        }
    }

    buildTypes {
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86_64": 4]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }
}

dependencies {
    implementation project(':react-native-screens')
    implementation project(':@react-native-community_async-storage')
    implementation project(':react-native-vector-icons')
    implementation project(':react-native-localize')
    implementation project(':react-native-sound')
    implementation project(':lottie-react-native')
    implementation project(':react-native-config')
    apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
    implementation project(':react-native-splash-screen')
    implementation project(':react-native-gesture-handler')
    implementation project(':react-native-keychain')
    implementation project(':react-native-version-info')
    implementation project(':arcore_client') // remove this if AR not required
    implementation project(':gvr_common')
    implementation project(path: ':viro_renderer')
    implementation project(path: ':react_viro')
    implementation 'com.google.android.exoplayer:exoplayer:2.7.1'
    implementation 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-7'
    implementation 'com.amazonaws:aws-android-sdk-core:2.7.7'
    implementation 'com.amazonaws:aws-android-sdk-ddb:2.7.7'
    implementation 'com.amazonaws:aws-android-sdk-ddb-mapper:2.7.7'
    implementation 'com.amazonaws:aws-android-sdk-cognito:2.7.7'
    implementation 'com.amazonaws:aws-android-sdk-cognitoidentityprovider:2.7.7'
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.facebook.react:react-native:+"  // From node_modules
}

Thanks for reply

TommyLeong commented 5 years ago

You can add the following in the your gradle.properties to avoid the error. android.enableD8.desugaring=false

owjsub commented 5 years ago

Is there another way to resolve this warning other than to opt out of desugaring?