2013-04-17 16 views
1

我正在使用JSON.NET解析JSON在我的Mono for Android應用程序中。但是當我製作一個包時,生成的文件爲17 MB,並且鏈接:無。 與鏈接打開,封裝尺寸減小到4 MB,但我得到一個錯誤:與JSON.NET的包是非常大的

System.MissingMethodException: Default constructor not found for type System.ComponentModel.TypeConverter. 

我懷疑,該鏈接出了問題,但我不知道爲什麼。不過,我想減少我的包裝的尺寸。有任何想法嗎?

+0

你怎麼包括Json.Net?如果你下載源代碼,你可以爲你的目標項目編譯一個DLL。在我的情況下,.dll只有〜300kb。 –

+0

@ColoradoMatt是的,該DLL是〜300 kB,但問題是,我必須關閉鏈接,以便JSON.NET工作,然後所有其他程序集膨脹包 – Matus

回答

2

啓用鏈接將丟棄編譯時未使用的任何方法,屬性,屬性...。例如使用反射方法就是這個問題。

你的問題 - 非常大的包可以通過解決: - 手動刪除未使用的代碼和鏈接關閉 - 可能不希望

  • 使用DataContractJsonSerializer做的事 - 使用此應用

    1. 減少圖書館代碼類是顯著小
    2. 活了17 MB的應用程序,畢竟它還是可以忍受的:)和鏈接「只是SDK組件」也一點點幫助
  • +0

    1.這將需要編輯.NET庫 2.我懷疑使用DataContractJsonSerializer,因爲大小不是來自JSON.net,而是來自其他程序集。 3.我可以接受大小,但它可能會讓潛在用戶感到疑惑 – Matus

    0

    使用由Xamarin Component Store提供的Json.Net。我已經將這個組件用於多個項目,並且我的發佈版本啓用了鏈接,大小介於4-8 MB之間。

    0

    此問題可以通過將系統程序集添加到項目的Mono Android選項下的「跳過鏈接程序集」列表來解決。這爲我添加了< 1 Mb到APK的大小。