Ответ 1
Похоже, что решение проблемы потребовало от меня сделать следующее в моем проекте проекта build.gradle.
repositories {
flatDir {
dirs project(':newmodule-thesdk').file('libs')
}
}
У меня есть приложение для 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?
Похоже, что решение проблемы потребовало от меня сделать следующее в моем проекте проекта build.gradle.
repositories {
flatDir {
dirs project(':newmodule-thesdk').file('libs')
}
}
У меня была аналогичная проблема, и я просто изменил свой xxx.aar на xxx-N.N.aar, в вашем случае thesdk.aar
до thesdk-1.0.aar
, а затем он отлично работал
Вам просто нужно изменить свой код таким образом
dependencies {
compile fileTree(include: ['thesdk-1.0.aar'], dir: 'libs')
}
Имейте в виду, что файл должен существовать!
u может сделать 2 подхода
1) Как вы уже сказали это:
repositories {
flatDir {
dirs project(':newmodule-thesdk').file('libs')
}
}
это можно сделать таким образом
2) вы можете создать новый проект gradle с включением sdk и ссылаться на старый проект кода в нем.
а затем ссылаться на старый проект, когда вы не хотите включать sdk, и когда вы хотите включить ссылку sdk в новый проект gradle