7

最近、Android アプリケーションの mavenizing を開始しました。障害の 1 つは次のとおりです。ビルド中に maven プラグインが res ディレクトリのレイアウトで使用されるドローアブルを見つけることができません。Androidクイックスタートアーキタイプを使用して、最初にmavenizingを開始しました。

mvn archetype:generate -DarchetypeArtifactId=android-quickstart -DarchetypeGroupId=de.akquinet.android.archetypes -DarchetypeVersion=1.0.8

次に、すべてのリソースを archetype によって生成された res ディレクトリにコピーしました。私見これで十分なはずです。しかし、mvn clean install の後に得られるものは次のとおりです。

[INFO] --- android-maven-plugin:3.4.0:apk (default-apk) @ missnanny-android-app --- [INFO] ローカル アセット ファイルを結合されたアセット ディレクトリにコピーしています。[INFO] D:\Environments\AndroidSDK\android-sdk\platform-tools\aapt.exe [package, -f, -M, D:\Programming\myproj.com\myproj\myproj-android-app\MyprojManifest.xml , -S, D:\Programming\myproj.com\myproj\myproj-android-app\res, --auto-add-overlay, -A, D:\Programming\myproj.com\myproj\myproj-android-app \target\generated-sources\combined-assets\assets, -I, D:\Environments\AndroidSDK\android-sdk\platforms\android-7\android.jar, -F, D:\Programming\myproj.com\myproj \myproj-android-app\target\myproj-android-app-0.0.1-SNAPSHOT.ap_]

[INFO] D:\Programming\myproj.com\myproj\myproj-android-app\res\layout\layout_1.xml:8: エラー: エラー: 指定された名前に一致するリソースが見つかりません ('src' で値 ' @drawable/image')。

私は多くのそのようなエラーを取得しています。それらはすべて、一部の layout.xml ファイルのリソースが見つからないと言っています。上記のログのプロジェクトとリソースの名前を変更しました。本当の名前は myproj とは異なります。しかし、それは問題ではありません。Mavenizing 中、私はリソースを archetype によって生成された res ディレクトリにコピーしただけです。私が持っているresフォルダに:

res/drawable res/drawable-hdpi res/drawable-mdpi res/drawable-ldpi res/layout res/raw res/values res/values-pl

AndroidManifest.xml でアプリケーション アイコンのドローアブルをロードしても問題はありません。すべての問題は、drawable.xml のレイアウトとセレクターに関連しています。

私のポン:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>pl.comapny.groupid</groupId>
    <artifactId>projectid</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>appname-android-app</artifactId>
<packaging>apk</packaging>
<name>appname-android-app</name>

<properties>
    <platform.version> 2.1.2 </platform.version>
</properties>

<dependencies>

    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>android</artifactId>
        <version>${platform.version}</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>pl.company.groupid</groupId>
        <artifactId>artifact</artifactId>
        <version>${project.version}</version>           
    </dependency>

</dependencies>

<build>
    <resources>
      <resource>
         <directory>${project.basedir}/res</directory>
         <filtering>true</filtering>
      </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <!-- <executions>
                <execution>  
                    <phase>initialize</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.basedir}/res</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${project.basedir}/src/templates/res</directory>
                                <targetPath>${project.basedir}/res</targetPath>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions> -->
        </plugin>
        <plugin>
            <groupId>com.jayway.maven.plugins.android.generation2</groupId>
            <artifactId>android-maven-plugin</artifactId>
            <version>3.4.0</version> <!--3.4.0, 3.1.1, 3.0.0-alpha-14-->
            <configuration>
                <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
                <assetsDirectory>${project.basedir}/assets</assetsDirectory>
                <resourceDirectory>${project.basedir}/res</resourceDirectory> 
                <!-- <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> -->
                <sdk>
                    <platform>7</platform>
                </sdk>
                <undeployBeforeDeploy>true</undeployBeforeDeploy>
            </configuration>
            <extensions>true</extensions>
        </plugin>

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>

4

1 に答える 1

10

わかりました、私は私の問題をなんとか解決することができました。これは本当に愚かでした。破損している9つのパッチイメージに問題がありました。これにより、ビルドが失敗しました。Eclipse androidプラグインは、9パッチイメージとしてマークされたドローアブルを受け入れるようですが、実際には受け入れず、ビルドを完了できます...mavenandroidプラグインの状況は異なります。しかし、それでも私が受け取っていた私見のエラーメッセージは不適切でした-そこで私は本当の問題に集中しませんでした。私は多くの時間を失いました..そして、「指定された名前に一致するリソースが見つかりませんでした」というエラーメッセージがなければ、はるかに速く解決策を見つけることができると確信しています。これらのエラーはプラグインでスキップする必要があります。

于 2012-11-06T11:16:33.477 に答える