2013-07-02 73 views
6

我剛剛在Windows 8上安裝了Xamarin工作室,我創建了一個C#android項目,並嘗試編譯它沒有運氣。卡住Xamarin AAPT錯誤

我得到的錯誤是在AAPT工具,但即使從MSBuild的詳細輸出我得到的是在輸出窗口如下:

Task "Aapt" 
Aapt Task 
    AssetDirectory: 
    ManifestFile: C:\Users\Giuseppe\AppData\Local\Temp\i4va1gur.y4b\AndroidManifest.xml 
    ResourceDirectory: obj\Debug\res\ 
    JavaDesignerOutputDirectory: C:\Users\Giuseppe\AppData\Local\Temp\i4va1gur.y4b 
    PackageName: AndroidLocationLogger.AndroidLocationLogger 
    UncompressedFileExtensions: 
    ExtraPackages: 
    AdditionalResourceDirectories: 
    LibraryProjectJarsWildcard: obj\Debug\__library_projects__\*.jar 
    ExtraArgs: 
C:\Users\Giuseppe\AppData\Local\Android\android-sdk\platform-tools\aapt.exe package -f -m -M C:\Users\Giuseppe\AppData\Local\Temp\i4va1gur.y4b\AndroidManifest.xml -J C:\Users\Giuseppe\AppData\Local\Temp\i4va1gur.y4b --custom-package androidlocationlogger.androidlocationlogger -F C:\Users\Giuseppe\AppData\Local\Temp\i4va1gur.y4b\resources.apk.bk -S obj\Debug\res -I C:\Users\Giuseppe\AppData\Local\Android\android-sdk\platforms\android-8\android.jar --auto-add-overlay 
C:\Program Files\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(707,2): error MSB6006: "aapt.exe" exited with code -1073741816. 
Done executing task "Aapt" -- FAILED. 
Done building target "_UpdateAndroidResgen" in project "AndroidLocationLogger.csproj" -- FAILED. 

我真的不知道如何調試這一點,給有多少數據給我...

回答

2

從我的經驗來看,這通常是由於資源問題(換句話說,已經添加到資源文件夾下的項目 - 通常在Drawable中或佈局文件夾)。

如果你進入Resource.Designer.cs文件,它可能會提供一些關於項目問題的線索。

一種可能的解決方案是刪除已添加到項目中的任何其他文件,並嘗試重建它。

另一種可行的方法是清理項目Build-> Clean Solution,然後重新構建解決方案。

如果你剛剛開始,也許你可以開始一個新項目,然後從這個破損的項目中打開文件並複製它們 - 或者只是代碼的一部分 - 並建立項目,以便你可以診斷哪個文件是錯誤的一。

請讓我知道這一直是任何你有幫助,

問候, 詹姆斯。

+0

嗨,我從頭開始創建一個項目,直接編譯。沒有新文件或任何東西。資源目錄是不變的! –

12

這個錯誤主要發生是由於你的項目文件的名稱,檢查這些first..look此​​外,如果名稱有符號和空格...只是糾正他們從這些類型的錯誤釋放..

+5

沒有,沒有幫助... –

+0

這是圖像名稱中的祝福連字符。祝福你! –

+0

我有一個佈局名爲「xxx .x​​ml」的空間! –

1

我已經能夠通過刪除存在於佈局目錄中的錯誤的android.axml文件來解決這個相同的問題。如果您複製文件並且不重命名該文件,則可能存在無效文件字符,這會在構建過程中導致問題...

例如: 「myLayout(copy).axml」。

確保正確地重命名您的佈局文件,和/或從項目中刪除它們並重新構建。

0

這個錯誤發生在兩種情況下。

1)如果您在文件名中有不良字符,至少appt會在診斷輸出中報告錯誤(如果您查找它)。 (build-> log output = diagnostics)

2)如果你的佈局文件或菜單文件引用了一個資源,這是錯誤地拼寫或丟失。這一個需要一些狩獵。這是沒有診斷的appt錯誤。

基本上任何axml格式的資源文件都可以引用drawables,字符串,顏色,菜單,菜單選擇器..等等。一次打開一個文件,直到找到您引用的內容,但資源文件夾中沒有。

1

如果您正在使用。resx文件的本地化,請確保您將其「Build Action」設置爲「Embedded Resource」

2

添加的資源文件(圖像,聲音等)只能包含[a-z0-9_。] - 即不允許其他特殊字符比'_'和'。',

否則你會得到這個錯誤。 「aapt.exe」退出,代碼爲1(MSB6006)」

0

設置文件屬性爲Android資產會做的伎倆。

+0

我做了相反的,它的工作。將屬性fromandroid資產更改爲無。 –

-1

如果你有一個錯誤做9補丁,你會得到這個錯誤,我有在我的圖像的所有四邊標記可擴展的補丁,以使錯誤消失

0

對我來說,它是一個資源文件名中的@,導致「aapt.exe」退出時出現錯誤代碼,我重命名後資源文件錯誤得到修復

+0

這是發佈問題的可能解決方案,我編輯了我的問題並進一步澄清 – Shaegorath

2

當您安裝了Android構建工具時,Xamarin不支持這種錯誤也可能發生。默認Xamarin.Android項目更喜歡最新版本的Android構建工具。我有24.0.0預覽,但不支持。 您可以通過在您的.csproj文件中添加AndroidSdkBuildToolsVersion屬性來手動提供構建工具版本。 另請參閱:Xamarin.Android build process