2014-11-05 19 views
0

我使用自己的公司存儲庫,並從.m2/settings.xml中獲取存儲庫憑據。 我一直做得很好,直到Android Studio和Gradle插件(AS 0.8.14,Gradle 0.13.2)的最新更新。既然我已經更新了他們,我得到下面的「搖籃工程同步」錯誤:Android - Gradle無法在空對象上獲取屬性「用戶名」

Error;(57,0) Cannot get property 'username' on null object 

的問題是在這裏:

allprojects { 
     group 'com.tempos21.android.commons' 
     repositories { // repositories needed in project 
      mavenCentral() // maven central repository 
      maven{ // another repository. Our nexus 
       credentials { 
        def credentials = getCredentials("internal") 
        username = credentials["username"] 
        password = credentials["password"] 
       } 
       url "https://nexus1.tempos21.com/nexus/content/repositories/releases" // url of our nexus repository 
     } 
    } 
} 

我認爲,「資格證書」的對象是空的下一行(在更新之前它不是空的)。該方法getCredentials是:

// get repository credentials from .m2/settings.xml 
def getCredentials(server) { 
    def entries = getMavenSettingsCredentials() 
    for (entry in entries) { 
     if (entry."id".text() == server) { 
      return [username: entry.username.text(), password: entry.password.text()] 
     } 
    } 
} 

而且getMavenSettingsCredentials是:

// read .m2/settings.xml 
def getMavenSettingsCredentials() { 
    String userHome = System.getProperty("user.home"); 
    File mavenSettings = new File(userHome, ".m2/settings.xml") 
    def xmlSlurper = new XmlSlurper() 
    def output = xmlSlurper.parse(mavenSettings) 
    return output."servers"."server" 
} 

有誰知道,如果有已經在最近更新的任何變化,將導致此錯誤的gradle我的文件?

回答

1

對不起,這是我的錯。我不記得我改變了我的settings.xml來做一個測試,它沒有自己的存儲庫證書....所以,如果有人有類似的問題,請檢查你的settings.xml文件:p

相關問題