Я реализовал проект библиотеки под названием «близость» в Android Studio и создал «.aar». Этот арант я добавил в новый тестовый проект в качестве модуля, как указано здесь: https://stackoverflow.com/a/24894387/2791503 Кроме того, я включил модуль в зависимость от транзитивного флага, как это было предложено здесь: https://stackoverflow.com/a/25730092/2791503 Это может быть градиентом файла для новый TestProject:AAR Transitive Dependency Google Location Service
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile(project(':proximity')) {
transitive=true
}
Тем не менее, когда я запускаю приложение он говорит мне, что он не может найти класс Google Location API, который является зависимость моего модуля библиотеки.
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/api/GoogleApiClient$Builder;
Как я могу заставить gradle включить эти транзитивные зависимости моего библиотечного модуля?
EDIT: Вот Gradle файл сборки оригинального проекта библиотеки:
dependencies {
//integration tests
androidTestCompile 'com.android.support.test:runner:0.4.1'
// Set this dependency to use JUnit 4 rules
androidTestCompile 'com.android.support.test:rules:0.4.1'
// Set this dependency to build and run Espresso tests
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
// Set this dependency to build and run UI Automator tests
androidTestCompile 'com.android.support.test.uiautomator:uiautomator- v18:2.1.2'
androidTestCompile 'com.android.support:support-annotations:23.1.1'
//local unit testing
testCompile 'junit:junit:4.1'
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.1.1'
//estimote sdk
compile 'com.estimote:sdk:[email protected]'
//google location api(GPS)
compile 'com.google.android.gms:play-services-location:8.4.0'
//Google Guave Java Util
compile 'com.google.guava:guava:18.0'
//custom BeSpoon library for android
compile project(':bespoonlibrary')
}
И это как Gradle файл сборки выглядит после импорта библиотеки в качестве модуля, ссылающийся на AAR:
configurations.create("default")
artifacts.add("default", file('app-release.aar'))
Локальные проекты библиотек Android обычно обеспечивают их зависимости автоматически. –
звучит логично, но, к сожалению, это не работает для меня –
Как вы определили зависимости библиотеки близости? –