Android 4.0 与 4.2 API 差异

Android 4.0 vs 4.2 API differences

我正在尝试为 Android 4.2 设备编程,但我的书是教 Android 4.0 的 Beginning Android App Development 4。所以,我遇到了问题 运行 第一个针对 Android 4.2 的程序:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/
android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="This is my first Android Application!" />

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="And this is a clickable button!" />

</LinearLayout>

error: Error: No resource found that matches the given name (at 'text' with value '@string/hello'). activity_main.xml /HelloWorld/res/layout line 7 Android AAPT Problem

[I18N] Hardcoded string "And this is a clickable button!", should use @string resource activity_main.xml /HelloWorld/res/layout line 20 Android Lint Problem

[I18N] Hardcoded string "This is my first Android Application!", should use @string resource activity_main.xml /HelloWorld/res/layout line 15 Android Lint Problem

我想知道在哪里可以找到 4.0 API 与 4.2 之间的区别?我应该继续读这本书吗?

嗯,第一个错误只是因为您没有在 strings.xml 中创建名为 hello 的资源。其他两个警告只是因为 Android Lint 希望您使用字符串资源(如第一个),而不是对字符串进行硬编码。

然而,这些都与 Android 4.0 和 4.2 之间的任何差异无关。

如果您仍然对这些 API 级别的差异感到好奇,Android 文档中有大量信息。

https://developer.android.com/sdk/api_diff/21/changes.html https://developer.android.com/sdk/api_diff/22/changes.html

你的问题并不是 API 的问题,这只是因为你使用了 strings.xml 文件中没有的字符串(硬编码字符串)。你可以忽略它(应该只是一个建议而不是错误)或者只是创建一个字符串(只有当你多次使用该字符串时。