这是我的第一个Android项目,所以请耐心等待。每当我更改布局的背景时,我的应用程序都会崩溃,我注意到如果背景drawable不包含(v21)
,则布局不会崩溃。例如,将背景设置为@drawable/gradient_bg
它工作正常,另一方面,@drawable/gradient_bg_purple
它会在加载布局时崩溃应用程序。
(v21)
是什么意思?我猜测它与android API v有关吗?这是否意味着我应该为所有版本提供不同的文件? :/
我正在测试HTC - Android V-4.1.2 - HTC SDk级别 - 5.26
由于
答案 0 :(得分:2)
v21
表示该资源将在Android 21及更高版本上使用/可用。因此,在您的情况下,对于低于此值的任何Android版本,该资源将不存在。
<强>更新强>
你应该从drawable-v21
中取出那些抽屉,并根据你想要的密度将它们放在适当的文件夹中。例如,将其放在drawable-mdpi
,drawable-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
文件,我们可以提供更多帮助。