Ошибка совместимости источника и цели с Gradle [duplicate]

Ошибка округления с плавающей точкой. Из Что каждый компьютерный ученый должен знать о арифметике с плавающей точкой :

Сжатие бесконечного числа действительных чисел в конечное число бит требует приблизительного представления. Несмотря на то, что в большинстве программ имеется бесконечно много целых чисел, результат целочисленных вычислений может быть сохранен в 32 битах. В отличие от этого, учитывая любое фиксированное количество бит, большинство вычислений с реальными числами будут давать количества, которые не могут быть точно представлены с использованием этого количества бит. Поэтому результат вычисления с плавающей запятой часто должен быть округлен, чтобы соответствовать его конечному представлению. Эта ошибка округления является характерной особенностью вычисления с плавающей запятой.

blockquote>

84
задан Hephaestus 4 May 2016 в 06:48
поделиться

15 ответов

просто используйте java 1.8 с Android Studio 3.0+ и задайте следующие работы для меня: кажется, нужны последние инструменты построения

classpath 'com.android.tools.build:gradle:3.0.0'

и

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"

    defaultConfig {
        ...        
        //jackOptions { // DEPRECATED
            //enabled true
        //}
    }
    dexOptions {
        incremental true
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
79
ответ дан EpicPandaForce 26 August 2018 в 07:05
поделиться
0
ответ дан Aleksander Niedziolko 26 August 2018 в 07:05
поделиться

Я сталкиваюсь с той же проблемой с библиотекой API Reactive Location API для Android и RxJava 2 . Простое обновление build.gradle до 3.0.1 и сокращение библиотеки API-интерфейсов Reactive Location для Android и RxJava 2 версия библиотеки от 1.0.4 до 1.0.3. В моем случае она отлично работает.

0
ответ дан Divyam Khandelwal 26 August 2018 в 07:05
поделиться

Возможно, некоторые из ваших зависимостей были скомпилированы с Java 8, а не для Android. Попробуйте переключить эти зависимости на более раннюю версию. Я точно не знаю, какую библиотеку вы должны понизить, потому что вы не привязали список зависимостей вашего основного модуля.

Например: у меня была такая же проблема. После нескольких часов поиска я обнаружил, что для библиотеки org.codehaus.httpcache4j.uribuilder:2.0.0 требуется Java 8, начиная с github . Итак, когда я переключился на 1.1.0, проект был успешно создан и развернут.

7
ответ дан fobo66 26 August 2018 в 07:05
поделиться

Я смог решить эту проблему, добавив следующие строки:

jackOptions {
    enabled true
}

- defaultConfig в файле build.gradle.

Вы можете следовать рекомендациям для Java 8 по ссылке - https://developer.android.com/guide/platform/j8-jack.html

6
ответ дан John Moutafis 26 August 2018 в 07:05
поделиться

Если возможно для вас:

  1. Обновите инструменты андроида до: classpath 'com.android.tools.build:gradle:3.0.0'
  2. buildToolsVersion "26.0. 2 "

Это должно позаботиться об этой проблеме.

Ссылка: https://developer.android.com/studio/write/java8-support

0
ответ дан Kanika 26 August 2018 в 07:05
поделиться

Это случилось со мной с Android Studio 2.3.3. Решение, которое я нашел, это удалить папку сборки, а затем перестроить проект. Это было так просто.

2
ответ дан MattNotEquals0 26 August 2018 в 07:05
поделиться

Если у вас есть модуль с java-библиотекой, не зависящей от Android, это должно работать: apply plugin:'java'

Поместите его в начало файла build.gradle, а затем перестройте.

    apply plugin: 'java'
    apply plugin: 'jacoco'

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

        sourceCompatibility = 1.7
        targetCompatibility = 1.7
    }
16
ответ дан PLNech 26 August 2018 в 07:05
поделиться

Я также столкнулся с такой же ошибкой в ​​Android 2.3.3, добавив несколько JAR-зависимостей. Проблема была связана с депенцией io.netty:netty-all:4.1.16.Final. Эта версия 4.1.16 JAR была скомпилирована с Java 1.8, а все остальные были сгенерированы с помощью Java 1.7.

Это разрешилось после включения более старой версии netty (которая была сгенерирована с помощью Java 1.7) в моей build.gradle.

compile 'io.netty:netty-all:4.1.5.Final'

1
ответ дан rashok 26 August 2018 в 07:05
поделиться

У меня была та же проблема с зависимостью greendao-generator. Я ошибочно добавил, что зависимость от моего build.gradle (compile 'org.greenrobot:greendao-generator:3.1.0') и AndroidStudio показала мне то же сообщение об ошибке.

Вероятно, это потому, что этот модуль был скомпилирован с Java 8.

Поэтому я удалил эту зависимость из моего build.gradle и все скомпилировано счастливо:)

5
ответ дан Riccardo Leschiutta 26 August 2018 в 07:05
поделиться

Отключение Instant Run в Android Studio 2.2 с плагином Gradle 2.2.2 исправлено для меня. Переход на более раннюю версию плагина Gradle (например, 2.2.0) также исправил его, но это менее желательно imho.

2
ответ дан StephanBezoen 26 August 2018 в 07:05
поделиться

Если вы используете плагин org.jetbrains:annotation:15 и retrolambda, то удалите строку compile org.jetbrains:annotations:15.0 с вашего build.gradle, и ошибка исчезнет. Это работает для меня.

8
ответ дан tir38 26 August 2018 в 07:05
поделиться

Я столкнулся с этой проблемой при попытке импортировать jar, скомпилированный jdk 1.8 в Android Studio 3.0. Я пробовал все вышеперечисленное решение, но никто не работает. поэтому я попросил разработчика этой банки перекомпилировать его с помощью jdk 1.7, а затем он хорошо работает, а не снова сталкивался с этой проблемой.

0
ответ дан uncle long 26 August 2018 в 07:05
поделиться

Попробуйте добавить в main build.gradle в разделе allprojects

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

или добавить это в зависимостях

    sourceCompatibility = 1.7
    targetCompatibility = 1.7

в все модули вручную

6
ответ дан vitalinvent 26 August 2018 в 07:05
поделиться

Я решил эту проблему ниже:

apply plugin: 'java'

sourceCompatibility = 1.7
targetCompatibility = 1.7

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
2
ответ дан 李歆扬 26 August 2018 в 07:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: