2017-05-03 165 views
0

這是我過去幾天面對的非常有趣的場景。我有一個Xamarin項目,它使用MvvmCross和像RestSharp這樣的第三方庫。 幾天後,當我得到項目代碼並打開它時,我發現項目屬性文件夾有多個1 manifest文件異常。當我試圖運行項目的視覺工作室沒有拿起android清單文件。 我在互聯網上搜索這個,並得到了一些線索。沒有找到AndroidManifest.xml - Xamarin

  • 每個應用程序的根目錄中都必須有一個AndroidManifest.xml文件(具有該名稱)。

我張貼我的文件結構圖像reference.i已經檢查了我的.csproj文件,它下面的代碼

<AndroidManifest>Properties\TurboViewerarmAndroidManifest.xml</AndroidManifest> 
<ItemGroup> 
<Content Include="Properties\TurboViewerarmAndroidManifest.xml"> 
    <SubType>Designer</SubType> 
</Content> 

至於我所關心的,如果我改變清單文件名AndroidManifest。 xml項目運行正常,但是當我嘗試將其他清單文件的名稱更改爲AndroidManifest.xml時發生問題,因爲我們不能在單個文件夾中具有許多具有相同名稱的文件。但對於此項目,所有清單文件都將位於同一文件夾中但項目不會在沒有將其名稱更改爲AndroidManifest.xml的情況下運行。它像死鎖一樣。

The file structure

Folder with all manifest files

由於我是新來的Visual Studio和xamarin所以我可能會丟失一些點可能會令一切清晰。

+0

正如Luke指出的那樣,您知道每個項目只應有一個清單。如果您對其他項目有依賴關係,則它們每個都應該有一個清單,並且在構建時執行稱爲清單合併的過程,這將根據規則集合合元素。 https://developer.android.com/studio/build/manifest-merge.html這個過程在原生Android中也是一樣的。 –

+0

我會尋找以前可能設置的構建腳本,因爲這些不同的清單看起來特定於cpu體系結構。也許他們每個架構交換清單或爲每個ABI創建一個應用程序。 –

回答

0

每個應用程序在其根目錄中都必須有一個AndroidManifest.xml文件(正是這個名字)。

這就是你的問題 - 你的Android清單文件被稱爲TurboViewerarmAndroidManifest.xml。將它重命名爲AndroidManifest.xml

+0

感謝您的答案,但你還沒有看到我的完整問題。 據我擔心,如果我將清單文件名更改爲AndroidManifest.xml項目運行良好,但是當我嘗試更改其他清單文件的名稱到AndroidManifest.xml,因爲我們不能有許多具有相同名稱的文件單個文件夾。但是對於這個項目,所有的清單文件都在同一個文件夾中,但是項目不會在沒有改名的情況下運行AndroidManifest.xml –

+0

我確實讀過它,但我一定誤解了。爲什麼你需要多個Android清單?我不認爲這是可能的。 –

+0

,因爲該項目是基於其他項目,並且每個都有其自己的清單文件。 –

0

只是試圖做一個白標籤的應用程序非常相同。 Visual Studio會忽略AndroidManifest設置,因此您無法重命名該文件(此刻)。這是一個已知的問題:https://bugzilla.xamarin.com/show_bug.cgi?id=31306

即使預構建過程也不起作用,因爲它始終會拋出清單文件丟失(但存在)的錯誤。

我現在的解決方案:在手動構建項目之前重命名清單。

相關問題