問題1:Could not calculate build plan: Plugin org.apache... 不能成功創建maven項目 解決方法1: 問題2: 轉Maven project是生成的pom.xml文件錯誤——Unknown packaging:apk以及Failed to col ...
問題1:Could not calculate build plan: Plugin org.apache... 不能成功創建maven項目
解決方法1:
http://repo1.maven.org/maven2這個中央倉庫地址已經被屏蔽了,不能訪問,所以maven用到的插件和jar下載失敗,且你的電腦上的本地倉庫.m2並沒有下載好maven的插件等,項目自然不能正常執行maven命令。解決方法,1.如果沒有私服(例如nexus),那麼就把‘另外電腦中‘的本地倉庫.m2目錄拷貝到你的電腦上,併在maven conf settings.xml裡面設置<localRepository>為.m2目錄。2.有私服,就在settings.xml裡面配置nexus地址,從它上面下載。
問題2:
轉Maven project是生成的pom.xml文件錯誤——Unknown packaging:apk以及Failed to collect dependencies for xxx.xx.…….generation2:android-maven.plugin:3.5.3...
描述,因為錯誤沒辦法重現了,所以也記不太清楚具體的錯誤內容,不過錯誤提示分別在<packaging>apk</packaging>和第一行處 解決辦法,添加本地庫支持,因為中央庫的東西有時候連接不上獲取不了,所以我們使用本地的 <repositories><repository>
<id>my-internal-site</id>
<url>file:///${env.HOME}/.m2/repository</url>
</repository>
</repositories> 也許是這個原因吧,我也不清楚,不過這樣的確不報錯了。 問題3: pom.xml文件錯誤——Cannot read lifecycle mapping metadata for artifact…… 描述,這個錯誤是在problems這個試圖裡看到的,指向pom.xml文件的第一行,網上查到的解決辦法是刪除~\.m2\repository這個文件夾,然後本地庫重新從中央庫下載 問題4: 執行命令mvn clean install出錯——could not found tool ‘aapt’ 描述,SDK裡面aapt.exe是用來打包apk文件的,不過它的位置很詭異,api4是位於platforms文件夾的android-4文件夾下的tools文件夾里,而api17則是位於build-tools的17.0.0文件夾下,Maven似乎在執行命令的時候會在pom.xml文件找platform屬性,如果是4,那麼就去對應的platforms文件夾的andoird-4文件夾下麵找aapt.exe,但是如果是10,這是找不到的,因為沒有android-10\tools\aapt.exe這個文件,所以當然報錯 解決辦法,我們需要手動拷貝,將build-tools\17.0.0下的所有內容拷貝到android-10\tools文件夾內(需要自己創建tools文件夾)。為什麼用17.0.0下的aapt.exe,下麵還會說到。 問題5: 執行命令mvn clean install出錯——MojoExecutionException: ANDROID-040-001: Could not execute: Command …… 描述,大致上就是說沒辦法執行一個aapt命令,類似於這樣的一個命令無法執行 D:\Android\Android_SDK\platforms\android-4\tools\aapt.exe package -m -J G:\工程文件\Eclipse3\aaa\target\generated-sources\r -M G:\工程文件\Eclipse3\aaa\AndroidManifest.xml -S G:\工程文件\Eclipse3\aaa\res --auto-add-overlay -A G:\工程文件\Eclipse3\aaa\assets -I D:\Android\Android_SDK\platforms\android-4\android.jar 我們單獨在控制台執行這個命令,得到的輸出是“命令行太長”,我真無語了。 解決辦法,想辦法縮減文件夾的結構。。。。 問題6: 執行命令mvn clean install出錯——MojoExecutionException: ANDROID-040-001: Could not execute: Command …… 描述,命令縮減之後依然無法執行,不過這時候的命令是這樣的 D:\Android\Android_SDK\platforms\android-4\tools\aapt.exe package -f -M G:\a\aaa\AndroidManifest.xml -S G:\a\aaa\res --auto-add-overlay -A G:\a\aaa\target\generated-sources\combined-assets\assets -I D:\Android\Android_SDK\platforms\android-4\android.jar -F G:\a\aaa\target\aaa.ap_ --debug-mode 多了一個--debug-mode,我們單獨在控制台執行這個命令,會發現提示顯示的是aapt不支持--debug-mode這個參數,尼瑪,簡直坑爹有沒有。然後我用了build-tools下麵的aapt.exe發現可以使用這個參數,於是你明白了之前為什麼我要拷貝17.0.0文件夾下的aapt.exe了 解決辦法,刪掉android-4下麵的aapt相關文件,從17.0.0文件夾下拷貝東西過來。 問題7: 在Eclipse右鍵項目選擇Run as-maven install出錯——complier could not found,Perhaps you are running on a JRE rather than a JDK 描述,不是急的太清了,反正意思就是找不到編譯器,說我們可能使用安裝的jre運行而不是jdk裡面的jre運行。 解決辦法,window-Preferences-java-installed JREs,選擇add,找到自己的jdk路徑,確定之後選擇jdk,不要選擇jre 問題8: 在pom.xml添加dependency時出錯誤——Missing artifact…… 描述,修改pom.xml並保存,maven就會去連接中央庫(可能是企業內部的)來更新本地庫,有時候網路狀況不佳的時候會出現連接中央庫timeout,那麼此時就會出現missing artifact錯誤了 解決辦法,在.m2/repo...文件夾下麵找到這個artifact的文件夾,刪掉,然後重新保存pom.xml,當然如果依然timeout,自己想辦法吧。
問題9: no android sdk path could be found
描述,有時候maven沒辦法找到sdk的路徑,即使你配置了ANDROID_HOME環境變數,這時候需要在$HOME/.m2文件夾下創建setting.xml文件,向其中加入以下配置信息
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>android</id>
<properties>
<android.sdk.path> PATH / TO / THE / ANDROID / SDK </android.sdk.path>
</properties>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time --> <activeProfile>android</activeProfile> </activeProfiles>
</settings>