Не удается разрешить зависимость модуля после обновления до Android Studio 3.2.1 - PullRequest
0 голосов
/ 08 ноября 2018

После обновления до AS 3.2.1 я получаю эту ошибку синхронизации:

Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :androidlib_abc.

мое приложение gradle.build:

apply plugin: 'com.android.application'


allprojects {
    repositories {
        // The order in which you list these repositories matter.
        google()
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "de.gpx.android.rtk"
        minSdkVersion 24
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            cmake {
                cppFlags ""
            }
        }
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
    buildToolsVersion '28.0.3'
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    compile project(path: ':androidlib_abc')
}

мой файл androidlib_abc gradle.build:

apply plugin: 'com.android.library'


android {
    compileSdkVersion 28
    buildToolsVersion '28.0.3'

    defaultConfig {
        minSdkVersion 24
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'
    testCompile 'junit:junit:4.12'
}

Ссылка «Открыть файл» в сообщении об ошибке указывает на файл приложения gradle.build.Когда я удаляю строку

compile project(path: ':androidlib_abc')

Тогда я могу синхронизировать проект оценки, но я не могу скомпилировать и использовать какой-либо пакет из этой библиотеки (не могу разрешить классы и т. Д.)не делать обновление ... ("Никогда не меняйте работающую систему" -_-)

Есть идеи как исправить?

ОБНОВЛЕНИЕ:

Я удалил модуль из проекта, а затем снова импортировал его.Тогда все работало нормально!НО: каталог модуля копируется в каталог моего проекта (обычное поведение).Однако мне нужно, чтобы каталог модуля был на один уровень выше, в том же каталоге, что и каталог проекта.Таким образом, я мог бы поделиться модулем с различными проектами, не имея дубликатов и синхронизируя работу, что экономит мне много времени (на самом деле я не могу работать с несколькими проектами иначе).

Я использовал этот settings.gradlefile:

include ':app', ':androidlib_abc'

project(':androidlib_abc').projectDir = new File(rootProject.projectDir, '../androidlib_abc ')

, который отлично работал до AS 3.2.1

Теперь, после того, как я снова успешно импортировал модуль и переместил каталог модуля на один уровень вверх и изменил файл settings.gradle наснова, я снова получаю ошибку невозможности разрешения зависимости: '- (

UPDATE2:

Использование другого конструктора без аргумента rootProject.projectDir позволило мнечтобы выполнить синхронизацию gradle.

include ':app', ':androidlib_abc'

project(':androidlib_abc').projectDir = new File('../androidlib_abc')

Библиотека наконец-то указана в левой части!

Однако возникла новая проблема. Классы / методы / поля и т. д. не определены вмодуль может быть разрешен. Даже в классах внутри самого модуля, хотя они даже находятся в одном каталоге (пакете) ... Очистка и восстановление не помогли.Например, это здание успешно, и я, по-видимому, могу даже установить приложение на свое устройство и запустить его без каких-либо исключений ...!?Так может это просто ошибка IDE?

UPDATE3

Я удалил каталог .gradle и .idea и перезапустил AS.Теперь все в порядке B -)

1 Ответ

0 голосов
/ 08 ноября 2018

попробуйте собрать androidlib_abc один раз. Можете ли вы увидеть эту библиотеку в боковом меню? Возможно, эта библиотека не импортирована должным образом

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