2

我正在学习按照http://developer.android.com中的教程开发 android 应用程序。

现在我正在处理http://developer.android.com/training/custom-views/create-view.html,当我构建应用程序时出现错误:

D:\sviluppo\netbeans\custom-view\res\layout\main.xml:24: error: No resource identifier found for attribute 'showText' in package 'com.example.android.customviews.charting'
D:\sviluppo\netbeans\custom-view\res\layout\main.xml:24: error: No resource identifier found for attribute 'labelHeight' in package 'com.example.android.customviews.charting'
D:\sviluppo\netbeans\custom-view\res\layout\main.xml:24: error: No resource identifier found for attribute 'labelWidth' in package 'com.example.android.customviews.charting'
D:\sviluppo\netbeans\custom-view\res\layout\main.xml:24: error: No resource identifier found for attribute 'labelY' in package 'com.example.android.customviews.charting'
D:\sviluppo\netbeans\custom-view\res\layout\main.xml:24: error: No resource identifier found for attribute 'labelPosition' in package 'com.example.android.customviews.charting'
D:\sviluppo\netbeans\custom-view\res\layout\main.xml:24: error: No resource identifier found for attribute 'highlightStrength' in package 'com.example.android.customviews.charting'
D:\sviluppo\netbeans\custom-view\res\layout\main.xml:24: error: No resource identifier found for attribute 'pieRotation' in package 'com.example.android.customviews.charting'
D:\sviluppo\netbeans\custom-view\res\layout\main.xml:24: error: No resource identifier found for attribute 'labelColor' in package 'com.example.android.customviews.charting'
D:\sviluppo\netbeans\custom-view\res\layout\main.xml:24: error: No resource identifier found for attribute 'autoCenterPointerInSlice' in package 'com.example.android.customviews.charting'
D:\sviluppo\netbeans\custom-view\res\layout\main.xml:24: error: No resource identifier found for attribute 'pointerRadius' in package 'com.example.android.customviews.charting'

我从网站下载了代码并按原样安装了它,没有任何更改,所以 main.xml 是

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:custom="http://schemas.android.com/apk/res/com.example.android.customviews"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
<com.example.android.customviews.charting.PieChart
        android:id="@+id/Pie"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:layout_weight="100"
        custom:showText="true"
        custom:labelHeight="20dp"
        custom:labelWidth="110dp"
        custom:labelY="85dp"
        custom:labelPosition="left"
        custom:highlightStrength="1.12"
        android:background="@android:color/white"
        custom:pieRotation="0"
        custom:labelColor="@android:color/black"
        custom:autoCenterPointerInSlice="true"
        custom:pointerRadius="4dp"
        />
<Button
        android:id="@+id/Reset"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/reset_button"
        />
</LinearLayout>

和命名空间是一样的。

您能帮我理解为什么会出现这些错误吗?非常感谢。

4

3 回答 3

18

我也有同样的问题,答案在这个 链接中。

简而言之,你需要更换

http://schemas.android.com/apk/res/com.example.android.customviews

http://schemas.android.com/apk/lib/com.example.android.customviews

即, /res//lib/.

于 2014-03-19T23:26:09.207 回答
1

我从 Android.com 下载了相同的自定义演示,并且遇到了同样的问题。

改变

xmlns:custom="http://schemas.android.com/apk/res/com.example.android.customviews"

要么

xmlns:custom="http://schemas.android.com/apk/lib/com.example.android.customviews"

或者

xmlns:custom="http://schemas.android.com/apk/res-auto"

工作。它们之间存在一些差异,我发现第二种解决方案非常适合我的需要。我不知道为什么它有效。

于 2015-07-16T03:36:31.230 回答
0

我遇到了同样的问题,我认为您的自定义属性不属于正确的命名空间。您可以获取customview_panda的演示并查看main.xml中的自定义属性,您就会明白。 https://github.com/pandabo1985/Android_App_Prac

于 2013-09-11T08:18:00.853 回答