2014-12-18 3 views
1

Я создаю приложение для Android в Android Studio, и я использую Google App Engine. Все работает нормально, но я хочу добавить некоторые перечисления/классы, которые являются общими между двумя проектами. Я создал модуль библиотеки Android и добавил перечисления, но у меня возникли проблемы с добавлением ссылки из модуля App Engine. Вот мой Gradle для приложения двигателя:Как я могу использовать модуль библиотеки Android из модуля App Engine в Android Studio?

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.google.appengine:gradle-appengine-plugin:1.9.14' 
     compile 'com.android.support:appcompat-v7:21.0.3' 
    } 
} 

repositories { 
    mavenCentral(); 
} 

apply plugin: 'java' 
apply plugin: 'war' 
apply plugin: 'appengine' 

sourceCompatibility = JavaVersion.VERSION_1_7 
targetCompatibility = JavaVersion.VERSION_1_7 

dependencies { 
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.14' 
    compile 'com.google.appengine:appengine-endpoints:1.9.14' 
    compile 'com.google.appengine:appengine-endpoints-deps:1.9.14' 
    compile 'javax.servlet:servlet-api:2.5' 
    compile 'com.google.code.gson:gson:2.3' 
    compile project(':sharedlibrary') 
} 

appengine { 
    downloadSdk = true 
    appcfg { 
     oauth2 = true 
    } 
    endpoints { 
     getClientLibsOnBuild = true 
     getDiscoveryDocsOnBuild = true 
    } 
} 

Когда я пытаюсь построить я тогда получаю эту ошибку:

Error:Could not resolve all dependencies for configuration ':backend:compile'. 

Could not find com.android.support:appcompat-v7:21.0.3. Searched in the following locations: https://jcenter.bintray.com/com/android/support/appcompat-v7/21.0.3/appcompat-v7-21.0.3.pom https://jcenter.bintray.com/com/android/support/appcompat-v7/21.0.3/appcompat-v7-21.0.3.jar https://repo1.maven.org/maven2/com/android/support/appcompat-v7/21.0.3/appcompat-v7-21.0.3.pom https://repo1.maven.org/maven2/com/android/support/appcompat-v7/21.0.3/appcompat-v7-21.0.3.jar Required by: Translink:backend:unspecified Translink:backend:unspecified > Translink:sharedlibrary:unspecified

Я попытался добавить AppCompat как зависимость, но это не Работа.

ответ

2

Проекты Java в Gradle не могут зависеть от проектов Android. Android-проекты имеют значительно больше состояний проекта, особенно в их исходных наборах, с которыми плагин Java не может справиться. Если вы получите это конкретное сообщение об ошибке, потому что плагин Java не может найти транзитивные зависимости модуля Android, потому что для этих конкретных зависимостей требуется помощь от плагина Android, который необходимо решить - плагин жестко запрограммирован для поиска в SDK, а не через репозитории в блоке repositories.

Чтобы сделать то, что вы хотите, вам нужно будет реорганизовать ваш общий код в простой Java-модуль, от которого зависят как стороны Android, так и приложения.

+0

Отличное объяснение, спасибо Скотту – dmgdotnet

Смежные вопросы