Gradle ищет aar в неправильной папке проекта lib

У меня есть приложение для Android, состоящее из нескольких проектов. Одним из таких проектов является проект приложения, который просто расширяет объект приложения.

Внутри build.gradle для этого проекта приложения я добавляю другие проекты в качестве зависимостей.

Я только что создал новый модуль для размещения SDK (aar), который я хочу использовать. Я также добавил его в свой проект проекта build.gradle.

compile project(':newmodule-thesdk')

В папке libs newmodule-thesdk я добавил файл aar. Мы назовем его thesdk.aar.

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile(name:'thesdk-1.0', ext:'aar')
}

Когда я пытаюсь синхронизировать gradle, синхронизация терпит неудачу, потому что thesdk-1.0 не существует в папке libs моего проекта app. Почему он ищет его там? Почему это не просто найти его в проекте newmodule-thesdk?

Ответ 1

Похоже, что решение проблемы потребовало от меня сделать следующее в моем проекте проекта build.gradle.

    repositories {
        flatDir {
            dirs project(':newmodule-thesdk').file('libs')
        }
    }

Ответ 2

У меня была аналогичная проблема, и я просто изменил свой xxx.aar на xxx-N.N.aar, в вашем случае thesdk.aar до thesdk-1.0.aar, а затем он отлично работал

Ответ 3

Вам просто нужно изменить свой код таким образом

dependencies {
    compile fileTree(include: ['thesdk-1.0.aar'], dir: 'libs')
}

Имейте в виду, что файл должен существовать!

Ответ 4

u может сделать 2 подхода

1) Как вы уже сказали это:

 repositories {
        flatDir {
            dirs project(':newmodule-thesdk').file('libs')
        }
    }

это можно сделать таким образом

2) вы можете создать новый проект gradle с включением sdk и ссылаться на старый проект кода в нем.

а затем ссылаться на старый проект, когда вы не хотите включать sdk, и когда вы хотите включить ссылку sdk в новый проект gradle