2012-06-07 2 views
3

Я пытаюсь использовать https://github.com/chrisbanes/Android-PullToRefresh/. Я последовал примеру, но получил ошибку java.lang.NoSuchFieldError: com.handmark.pulltorefresh.library.R $ id.pull_to_refresh_sub_text

Это моя сетка:

<com.handmark.pulltorefresh.library.PullToRefreshGridView 
    xmlns:ptr="http://schemas.android.com/apk/res/com.abc.myproject" 
    android:id="@+id/gv_image" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:listSelector="#00000000" 
    android:padding="4dp" 
    android:horizontalSpacing="4dp" 
    android:verticalSpacing="4dp" 
    android:gravity="center" 
    android:numColumns="3" 
    android:columnWidth="128px" 
    android:stretchMode="columnWidth" 
    ptr:ptrMode="pullDownFromTop" 
    ptr:ptrDrawable="@drawable/android" /> 

Когда я бегу у меня есть выше исключения. Я добавил PullToRefresh в качестве другого проекта в рабочей области и сделаю его библиотекой моего проекта. Я также добавил файл Jar. Я думаю, что ошибка связана с тем, что строка xmlns: ptr = "http://schemas.android.com/apk/res/com.abc.myproject"?

Я отследил код и строку, которая вызвала исключение в LoadingLayout.java: mSubHeaderText = (TextView) header.findViewById (R.id.pull_to_refresh_sub_text);

Я что-то не так?

Спасибо!

+0

У меня тоже такая же проблема, вы смогли решить свою проблему? –

ответ

2

Android SDK Tools r17 добавляет поддержку пользовательских представлений с пользовательскими атрибутами в библиотеках. Макеты с использованием пользовательских атрибутов должны использовать URI пространства имен:

http://schemas.android.com/apk/res-auto

вместо URI, который включает имя приложения пакета. Этот URI заменяется конкретным приложением во время сборки.

2

Я была такая же проблема,

Что я сделал, чтобы исправить это, чтобы переместить ссылку на библиотеку от дна до верхней части списка. Я думаю, что было что-то, на что я ссылался, что противоречило генерации идентификаторов в R.java.

Вы можете сделать поиск по R.java по телефону pull_to_refresh_sub_text, чтобы убедиться, что он сгенерировал его должным образом.