См. Обновление выше, в котором упоминается ADT 0.9.7 - это в основном решает эту проблему.

я есть два проекта Android, «библиотечный проект», содержащий пользовательский макет, и «проект приложения», содержащий приложение, которое использует макет.

Кажется, все работает нормально, за исключением того, что редактор визуального макета создает исключение ClassNotFoundException (которое, как я полагаю, является ошибкой в ​​плагине), но когда я пытаюсь начать использовать атрибуты, определенные для пользовательского макета в XML, я больше не могу строить. Это; это работает:

<?xml version="1.0" encoding="utf-8"?>
<se.fnord.android.layout.PredicateLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
  <TextView
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="asdfasdf"
    />
</se.fnord.android.layout.PredicateLayout>

Принимая во внимание, что это не:

<?xml version="1.0" encoding="utf-8"?>
<se.fnord.android.layout.PredicateLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fnord="http://schemas.android.com/apk/res/se.fnord.android"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
  <TextView
    fnord:layout_horizontalSpacing="1px"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="asdfasdf"
    />
</se.fnord.android.layout.PredicateLayout>

Сборка завершается с сообщением от aapt:

ОШИБКА Не найден идентификатор ресурса для атрибута layout_horizontSpacing в пакете se.fnord.android.

Идентификатор ресурса существует в R-файле, а файл attrs.xml содержит проект библиотеки, и если я добавлю код макета и ресурсы непосредственно в проект приложения, все будет хорошо. Атрибут layout_horizontSpacing (и layout_verticalSpacing) - это пользовательский атрибут, используемый в классе PredicateLayout.LayoutParam для указания расстояния до следующего виджета.

До сих пор я пробовал стандартные способы затмения, указав ссылки на проекты и построив зависимости пути проекта. Мне также сказали попробовать тег в манифесте приложения, который не помог.

Итак, что мне нужно сделать, чтобы ссылки в xml-файле работали?

Я не знаю, уместно ли это, но манифест «библиотеки» выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="se.fnord.android"
      android:versionCode="1" android:versionName="1.0.0">
</manifest>

«Приложение» проявляется так:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="se.fnord.appname"
      android:versionCode="1" android:versionName="1.0.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".AppName"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

('PredicateLayout', кстати, является очищенной версиейэто).

Ответы на вопрос(5)

Ваш ответ на вопрос