【问题标题】:Xamarin ContentPage BackgroundImage property crashes app on AndroidXamarin ContentPage BackgroundImage 属性使 Android 上的应用程序崩溃
【发布时间】:2015-11-03 16:15:57
【问题描述】:

我正在使用 Xamarin 表单来生成一个包含更多 ContentPages 的 TabbedPage。这是导致问题的代码部分:

    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,在工作应用程序中,没有指定主题)?这似乎是唯一的区别。

我也不认为这是由 RAM 问题引​​起的,因为图像只有大约 700 KB (1080x1920) - 对于这个示例,我只使用了一张图像。

【问题讨论】:

    标签: android xamarin background crash xamarin.forms


    【解决方案1】:

    这可能是内存问题,因为即使大小不大,取决于设备分辨率,它可能会尝试将图像缩放到设备尺寸。

    尝试检查此自述文件:

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

    解释 Xamarin.Forms Android 图像内存管理,因此可以帮助您解决您可能遇到的问题。

    【讨论】:

    • 谢谢,我去看看,但我确定不是内存;我尝试使用工作应用使用的完全相同的图像,但仍然会导致相同的问题。
    • 我也有同样的问题。它在模拟器中工作fine。然而,在真正的设备上,它会蓬勃发展。查看 LogCat,它显示 Canvas: Trying to draw too large。我会尝试使用较小的图像。
    • 将我的宽度改为 1080,而不是大于 1080,似乎已经解决了我的 Galaxy S7 上的问题。模拟器没有问题,但显然设备有问题。希望有帮助:)
    • 发现当我使用宽度不超过 720 像素的 JPEG 背景时,TabbedPage 在 Android 上的速度要快得多。好多了:) 希望有帮助!
    猜你喜欢
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多