Android应用程序因Drawable资源崩溃而成为后台

时间:2015-09-03 18:02:57

标签: android android-layout drawable

这是我的第一个Android项目,所以请耐心等待。每当我更改布局的背景时,我的应用程序都会崩溃,我注意到如果背景drawable不包含(v21),则布局不会崩溃。例如,将背景设置为@drawable/gradient_bg它工作正常,另一方面,@drawable/gradient_bg_purple它会在加载布局时崩溃应用程序。

enter image description here

(v21)是什么意思?我猜测它与android API v有关吗?这是否意味着我应该为所有版本提供不同的文件? :/

我正在测试HTC - Android V-4.1.2 - HTC SDk级别 - 5.26

由于

2 个答案:

答案 0 :(得分:2)

v21表示该资源将在Android 21及更高版本上使用/可用。因此,在您的情况下,对于低于此值的任何Android版本,该资源将不存在。

<强>更新 你应该从drawable-v21中取出那些抽屉,并根据你想要的密度将它们放在适当的文件夹中。例如,将其放在drawable-mdpidrawable-hdpi

答案 1 :(得分:2)

v21 表示将使用此drawable的最低API级别 您运行的是Android 4.1.2,它使用API​​ v16

显然,您在资源(<?php $data[] = array('volume' => 67, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 1); $data[] = array('volume' => 85, 'edition' => 6); $data[] = array('volume' => 98, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 6); $data[] = array('volume' => 67, 'edition' => 7); ?> In this example, we will order by volume descending, edition ascending. We have an array of rows, but array_multisort() requires an array of columns, so we use the below code to obtain the columns, then perform the sorting. <?php // Obtain a list of columns foreach ($data as $key => $row) { $volume[$key] = $row['volume']; $edition[$key] = $row['edition']; } // Sort the data with volume descending, edition ascending // Add $data as the last parameter, to sort by the common key array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); ?> )目录中创建了一个drawable-v21目录 请检查是否是这种情况并将drawable移动到res目录。

如果确实如此,可能是因为Android Studio建议进行此更改,并且您正在使用特定于v21 API的功能。
如果您向我们展示此drawable文件,我们可以提供更多帮助。