Android Gradle - не удалось устранить ошибку при реализации Apache POI в Gradle - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь использовать следующую библиотеку (https://github.com/SUPERCILEX/poi-android), чтобы мое приложение могло читать содержимое документа Word. Я пытался следовать инструкциям в принятом ответе на этот похожий вопрос: Как добавить POI Android в Android Studio? , но безрезультатно. У меня другой вопрос, так как я уже определил переменную poiVersion в моем файле уровня проекта build.gradle.

Ниже приведена ошибка:

ОШИБКА: не удалось разрешить : com.github.SUPERCILEX.poi- android: poi: 3.17

Ниже мой код (уровень проекта build.gradle):

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.3.60'
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
    }
    ext {
        poiVersion = '3.17'
    }
    dependencies {
        classpath 'com.android.tools:r8:1.4.93'
        classpath 'com.android.tools.build:gradle:3.4.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Ниже мой код (уровень приложения build.gradle):

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.example.diffchecker"
        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'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation "com.github.SUPERCILEX.poi-android:poi:$poiVersion"
}

1 Ответ

4 голосов
/ 30 января 2020

Вы добавляете репозиторий в зависимости для buildscript, а не для модулей в проекте. Он должен быть ниже allprojects - то есть эта строка:

maven { url 'https://jitpack.io' }

должна быть перемещена вниз в этот блок repositories в разделе allprojects уровня вашего проекта build.gradle:

allprojects {
    repositories {
        google()
        jcenter()
    }
}

То есть этот блок должен быть в конце концов:

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}

Я подтвердил, что это изменение делает проект syn c правильно в Android Studio 3.5.

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