2012-07-18 17 views
1

我們有一個ANT構建過程,它可以一次構建我們所有的android項目。它完全基於android所鼓勵的構建過程。ANT構建過程處理期間的java.lang.NullPointerException有序依賴項

當我們構建release時,我們切換到ADT20,構建過程現在失敗。在-build-setup期間嘗試處理「有序依賴」時,android構建過程失敗。

我們簽署我們release應用程序與ant.properties文件,其中包含key.storekey.aliaskey.store.passwordkey.alias.password

它失敗,出現以下錯誤:

C:\PATH\android-sdks\tools\ant\build.xml:546: java.lang.NullPointerException 

這是所有說沒有-debug標誌。

隨着-debug標誌我得到這個:

C:\PATH\android-sdks\tools\ant\build.xml:546: java.lang.NullPointerException 
    at org.apache.tools.ant.taskdefs.Exit.execute(Exit.java:164) 
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
    at org.apache.tools.ant.Task.perform(Task.java:348) 
    at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) 
    at net.sf.antcontrib.logic.TryCatchTask$CatchBlock.execute(TryCatchTask.java:137) 
    at net.sf.antcontrib.logic.TryCatchTask.execute(TryCatchTask.java:225) 
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
    at org.apache.tools.ant.Task.perform(Task.java:348) 
    at org.apache.tools.ant.Target.execute(Target.java:390) 
    at org.apache.tools.ant.Target.performTasks(Target.java:411) 
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 
    at org.apache.tools.ant.Project.executeTarget(Project.java:1368) 
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251) 
    at org.apache.tools.ant.Main.runBuild(Main.java:809) 
    at org.apache.tools.ant.Main.startAnt(Main.java:217) 
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) 
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) 

回答

0

爲了解決這個問題,我把屬性以特定的順序:

key.store

key.alias

key.store.password

key.alias.password

我拿出ant.properties文件底部的所有額外空白。

這在舊版本的ADT中工作正常。不知道是什麼改變,使其失敗。 但重新排序屬性並刪除空格解決了問題。

我希望這可以幫助別人在未來,因爲我花了10個小時試圖跟蹤 這個問題。如果從ANT有更好的錯誤細節,這將會有所幫助。


我用的ANT碼這一點,以確保空白不見了。

<replaceregexp 
     file="${dirName}/../ant.properties" 
     match="\s*" 
     replace="" 
     byline="true"> 
    </replaceregexp> 
0

我有我的生成過程完全相同的問題。我的解決方案只是用版本19替換sdk的工具目錄,它工作正常。我可能會重新訪問它並更新到20並在稍後修復它。

+0

從那時起,我已經更新到19+,但自那以後還沒有測試過這個特殊問題。也許它已經解決了。謝謝(你的)信息。 – prolink007 2012-10-06 22:44:56

1

即使這個問題已經被回答。我發佈我的解決方案,我已經有一次這個問題。

  1. 刪除的/GEN/bin中目錄
  2. 內容重建項目

這爲我工作。