2017-05-16 64 views
1

將Xamarin地圖nuget包添加到我的應用程序後,我得到了Java.exe已退出的代碼2錯誤。我在android選項中啓用了multi-dex,並且現在出現以下錯誤:Multidex Xamarin Maps android問題

期望類路徑分隔符';'之前'\ Android \ android-sdk \ build-tools \ 26.0.0-preview \ lib \ shrinkedAndroid.jar'

我重新安裝了Android SDK並確保我有最新版本,但我仍然得到錯誤。我已經花了很長時間用google搜索這個問題並嘗試了不同的解決方案,但是我還沒有找到一個可行的工作

+0

當您不包含地圖NuGet時它工作嗎?我不確定這是否與問題有關。 –

回答

1

在當前版本中,multi-dex存在一些問題。更新到Visual Studio 2017 13.2可能會解決您提到的問題。如果doesn't,你可以嘗試兩件事情:

  1. 要解決的類路徑分隔符錯誤,把你的Android SDK的路徑沒有空格。即:C:\android-sdk\並更改工具>選項> Xamarin> Android SDK位置中的路徑。

如果你不想將移動,你可以創建一個命令行的鏈接SDK:

mklink /D "C:\android-sdk" "C:\Program Files (x86)\Android\android-sdk" 
  • 如果即使啓用了多DEX,它doesn't運行:
  • 當你打勾在Android項目屬性「啓用多地塞米松」選項,則將會看到的變化體現在的csproj如你所願

    <AndroidEnableMultipleDex>true</AndroidEnableMultipleDex> 
    

    但是,如果你仔細看,裏面是保持它的值設置爲false另一個類似的XML節點:

    <AndroidEnableMultiDex>false</AndroidEnableMultiDex> 
    

    通知「MultiDex」之間的差異,「MultipleDex」 更改第二個爲真將會訣竅。

    +0

    更新proguard,啓用multidex和最重要的重定位android SDK的組合解決了我所有的問題。謝謝 –

    +1

    今天早上移到新項目後,在創建一個新項目並添加Telerik nuget軟件包後,此錯誤再次出現。當我去編輯.csproj文件時,根本沒有標籤。手動添加它後,項目被允許構建得很好。如果有人有類似的問題,就把它扔到那裏。 –

    1

    我在使用nuget包將地圖添加到我的應用程序時遇到同樣的問題。

    剛剛從link 和replce從Android變化的最新proguard.jar文件sdk->工具 - > proguard-> lib-> progaurd.jar

    和 右擊你的Android項目 - >選擇option-> build-> android build->啓用proguard並啓用multidex以及進入高級 - > Java堆大小放1G。

    0

    我有這個相同的問題運行Visual Studio 2017 v 15.2。

    如前所述,如果您向解決方案添加了足夠的包和數據包,並且超出了標準dex文件中的65k方法限制,則需要啓用multi-dex。

    像其他人一樣注意到,啓用multi-dex並不總能解決問題,因爲它會在.csproj文件中打開一個名爲「AndroidEnableMutipleDex」的標誌。因此,如上述的建議,我添加的節點

    <AndroidEnableMultiDex>true</AndroidEnableMultiDex> 
    

    ,但是,因爲我不是太熟悉的.csproj文件的格式,我忘了補充它在這兩個

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    ... 
    
        <AndroidEnableMultipleDex>true</AndroidEnableMultipleDex> 
        <AndroidEnableMultiDex>true</AndroidEnableMultiDex> 
    </PropertyGroup> 
    

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    ... 
    
        <AndroidEnableMultipleDex>true</AndroidEnableMultipleDex> 
        <AndroidEnableMultiDex>true</AndroidEnableMultiDex> 
    </PropertyGroup> 
    

    是的,這個AA基本的錯誤,但它可以很容易使你不習慣手動編輯.csproj的文件,特別是如果你只是涉水到這是第一次,而不是甚至可以確定錯誤在哪裏來自(哪裏。

    另外,正如其他人所指出的,您將需要將Android sdk的位置移動到不含空格的路徑。