2015-11-03 71 views
1

我正在使用Xamarin Forms來生成由更多ContentPages組成的TabbedPage。這是代碼造成麻煩的部分:Xamarin ContentPage BackgroundImage屬性在Android上崩潰應用程序

public void launchMainDesign(object s, EventArgs e) { 
     MainPage = new TabbedPage { 
      Children = { 
       new ContentPage { 
        Title = "Login", 
        Content = pages.loginContent, 
        BackgroundImage = "bgmain.jpg" 
       }, 
       new ContentPage { 
        Title = "Sign Up", 
        Content = pages.signUpContent, 
        BackgroundImage = "bgmain.jpg" 
       } 
      } 
     }; 
    } 

這似乎絕對沒問題。我的Drawable目錄中有兩個圖像,生成操作設置爲「AndroidResource」。

每當通過按下按鈕觸發launchMainDesign()函數時,應用程序立即崩潰,無論是模擬器還是平板電腦上應用的構建版本。不幸的是,我無法在iOS和WP上測試。

我甚至試圖把整個函數的內部部分放在try/catch塊中,並打印出異常,但應用程序只是崩潰。

我拼命試圖解決這個簡單的問題大約一個星期了。似乎沒有人和我有完全相同的問題。最奇怪的是,我有一個不同的應用程序,我使用完全相同的方法,它工作得很好。 Android主題可以導致這種情況(我使用Holo,在工作應用中,沒有指定主題)?這似乎是唯一的區別。

我也不認爲這是由內存掙扎引起的,因爲圖像只有大約700千字節(1080x1920) - 在這個例子中,我只使用了一個圖像。

回答

0

這可能是一個內存問題,因爲即使它的尺寸不是很大,具體取決於設備分辨率,它可能會嘗試將圖像縮放到設備尺寸。

請檢查該自述:

https://github.com/xamarin/customer-success/blob/master/samples/Xamarin.Forms/SliderView/README.md

解釋Xamarin.Forms Android的圖像存儲管理,可以幫助你周圍,你可能會遇到的問題得到。

+0

謝謝,我會檢查出來,但我確定它不是內存;我嘗試使用工作應用程序使用的完全相同的圖像,它仍然會導致相同的問題。 – user3453428

+0

我有同樣的問題。它在仿真器中工作*很好*。但是,在真實的設備上,它變得繁榮。看着LogCat,它顯示畫布:試圖畫得太大。我會嘗試一個較小的圖像。 –

+0

將我的寬度更改爲1080,而不是大於1080,似乎解決了我的Galaxy S7上的問題。仿真器沒有問題,但顯然該設備。希望有所幫助:) –