2014-12-18 58 views
1

我正在Android Studio中構建一個Android應用程序,並且正在使用Google App Engine。一切正常,但我想添加一些在兩個項目之間通用的枚舉/類。我創建了一個Android庫模塊並添加了枚舉,但我無法從App Engine模塊添加參考。這裏是我的應用程序引擎的gradle產出:如何在Android Studio中使用App Engine模塊中的Android庫模塊?

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

我嘗試添加的程序兼容性作爲一個依賴但這並沒有工作。

回答

2

Gradle中的Java項目不能依賴於Android項目。 Android項目擁有更多的項目狀態,特別是在其源代碼集中,Java插件無法處理。由於這些特定的依賴關係需要Android插件的幫助才能解決,因此Java插件無法找到Android模塊的傳遞依賴關係,因此您會收到此特定錯誤消息 - 該插件是硬編碼的,無法通過SDK查找它們repositories區塊中的存儲庫。

要做你想做的事,你需要將你的通用代碼重構成一個普通的Java模塊,Android和App Engine都依賴它。

+0

很好的解釋,謝謝Scott – dmgdotnet 2014-12-18 22:27:15

相關問題