compileOptions, установленный на JavaVersion 1.8, приводит к сбою синхронизации gradle - PullRequest
1 голос
/ 30 сентября 2019

Я хотел бы использовать некоторые функции java 8 в своем приложении (а именно использование библиотеки json)

Однако, когда я добавляю

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

к моему build.gradle,Ошибка синхронизации проекта Gradle:

A problem occurred configuring project ':app'.
java.lang.NullPointerException (no error message)

Я использую Android studio на Ubuntu 19.04 со следующими установленными версиями Java

wouter@Wouter-Laptop:~/Android/Sdk$ sudo update-alternatives --config java 
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 0
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode
wouter@Wouter-Laptop:~/Android/Sdk$ sudo update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                          Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac   1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac   1111      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/bin/javac    1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 0
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/javac to provide /usr/bin/javac (java

Мой build.gradle выглядит как

    apply plugin: 'com.android.application'

    android {
        signingConfigs {
        }
        compileSdkVersion 29
        buildToolsVersion "29.0.2"
        defaultConfig {
            applicationId "nl.wouter.cycleweatherapp"
            minSdkVersion 21
            targetSdkVersion 29
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    }

    repositories {
        mavenCentral()
    }


    dependencies {
        implementation fileTree(include: ['*.jar'], dir: 'libs')
        implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
        implementation 'com.google.android.gms:play-services-maps:17.0.0'
        implementation 'org.osmdroid:osmdroid-android:6.1.2'
        implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
        implementation 'com.google.android.material:material:1.0.0-beta01'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
    }

Удаление части Java 1.8 из файла build.gradle устраняет ошибку, но не предоставляет возможности java 1.8. Рядом с переключением и установкой версий Java я попытался сделать недействительным и восстановить кеш-память.

Понятия не имею, как поступить, кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 04 октября 2019

Я наконец исправил это, установив Ubuntu LTS в vitrualbox и использовав его для разработки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...