В проекте Android не найден ресурс, использующий библиотечный проект - PullRequest
3 голосов
/ 22 февраля 2011

Мы используем Maven-Android-плагин для компиляции проекта Android, в котором используется проект библиотеки.

Поскольку плагин еще не поддерживает пакетный тип проекта библиотеки, мыВы используете эту модификацию плагина.

При компиляции основного проекта мы получаем эту ошибку:

[INFO] /home/win1frogtek/androidSDK/platform-tools/aapt [package, -m, -J, /home/win1frogtek/workspaceBranch/conoceTuTienda/target/generated-sources/gen, -M, /home/win1frogtek/workspaceBranch/conoceTuTienda/target/generated-sources/apklibs/libtek/AndroidManifest.xml, -S, /home/win1frogtek/workspaceBranch/conoceTuTienda/res, -S, /home/win1frogtek/workspaceBranch/conoceTuTienda/target/generated-sources/apklibs/libtek/res, --auto-add-overlay, -A, /home/win1frogtek/workspaceBranch/conoceTuTienda/assets, -I, /home/win1frogtek/androidSDK/platforms/android-4/android.jar]
[INFO] /home/win1frogtek/workspaceBranch/conoceTuTienda/res/layout/screen_play_home.xml:72: error: No resource identifier found for attribute 'maxPoints' in package 'org.frogtek.conoceTuTienda'
[ERROR] Error when generating sources.
org.apache.maven.plugin.MojoExecutionException: 
    at com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo.generateRForManifest(GenerateSourcesMojo.java:455)
    at com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo.generateApklibR(GenerateSourcesMojo.java:410)
    at com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo.execute(GenerateSourcesMojo.java:135)
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: com.jayway.maven.plugins.android.ExecutionException: ANDROID-040-001: Could not execute: Command = /bin/sh -c cd /home/win1frogtek/workspaceBranch/conoceTuTienda && /home/win1frogtek/androidSDK/platform-tools/aapt package -m -J /home/win1frogtek/workspaceBranch/conoceTuTienda/target/generated-sources/gen -M /home/win1frogtek/workspaceBranch/conoceTuTienda/target/generated-sources/apklibs/libtek/AndroidManifest.xml -S /home/win1frogtek/workspaceBranch/conoceTuTienda/res -S /home/win1frogtek/workspaceBranch/conoceTuTienda/target/generated-sources/apklibs/libtek/res --auto-add-overlay -A /home/win1frogtek/workspaceBranch/conoceTuTienda/assets -I /home/win1frogtek/androidSDK/platforms/android-4/android.jar, Result = 1
    at com.jayway.maven.plugins.android.CommandExecutor$Factory$1.executeCommand(CommandExecutor.java:186)
    at com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo.generateRForManifest(GenerateSourcesMojo.java:453)
    ... 21 more

Мы используем пользовательский виджет, что-то вродеэто:

  • attrs.xml в основном проекте

  • любой макет в основном проекте ...

    <org.frogtek.conoceTuTienda.widgets.MedalWidget android:id="@+id/ct_manejas_medal"
        android:layout_marginTop="200px" android:layout_marginLeft="25px"
        android:background="@drawable/ct_play_medal_empty" frogtek:maxPoints="4"
        android:layout_width="wrap_content" android:layout_height="wrap_content">
    </org.frogtek.conoceTuTienda.widgets.MedalWidget>
    

Я провел несколько тестов и изменений и, по-видимому, это проблема, связанная с плагином, тот же код без зависимости от apklib (тип пакета для библиотечного проекта) работает просто отлично.

Кто-нибудь может мне помочь с этим?Какой-нибудь обходной путь или идея?

Спасибо за любую подсказку или помощь.

PD: Я также опубликую это в группе разработчиков плагина.

1 Ответ

2 голосов
/ 09 марта 2011

Плагин Maven для Android был недавно обновлен до 2.9.0-бета-1 с поддержкой библиотечных проектов.Попробуйте это и посмотрите, поможет ли это.

...