1

問題の解決策を見つけました。答えは私の答えにあります。そして、質問を少し修正しました。


問題はまだ解決されていません。

Eclipse を使用して Android プロジェクトをビルドする場合、複数の R.javaファイルを生成する必要がありますか?

はい、R.javaインポートされたライブラリごとに生成されます。

R.java余分な2つのファイルを生成しないようにするにはどうすればよいですか

他の 2 つのライブラリをインポートしないでください。ただし、依存関係を修正する必要があるでしょう。複数でも問題ありません。

以下の問題は修正されましたが... Eclipse はまだ 3 つR.javaのファイルを生成しており、私の ant スクリプトは 1 つしか生成していません。問題のプロジェクトでは、両方のシナリオ (ant または eclipse) ですべてが正常にコンパイルされますが、これにより、エラーが発生する可能性があります。別のプロジェクトの問題であり、上記の質問に対する答えを知りたいです。


以下は、ちょっと解決された古い問題です

いくつかのアプリ用の ant ビルド スクリプトを作成しようとしています。このコードを実行しようとすると:

<target name="resource-src" description="Generate the R.java file for this project's resources.">
    <exec executable="${aapt}" failonerror="true">
        <arg value="package"/>
        <arg value="-f"/>
        <arg value="-v"/>
        <arg value="-M"/>
        <arg path="../AndroidManifest.xml"/>
        <arg value="-A"/>
        <arg path="../assets"/>
        <arg value="-I"/>
        <arg path="${android_jar}"/>
        <arg value="-m"/>
        <arg value="-J"/>
        <arg path="../gen"/> <!-- Create R.java in the gen directory -->
        <arg value="-S"/>
        <arg path="../res"/>
    </exec>
</target>

次のエラーが表示されます。

C:\BoogerReport\builder\build.xml:76: exec returned: 1

R.javaeclipse を使用してプロジェクト (gen フォルダー内) をビルドすると、このアプリが複数のファイルを生成していることに気付きました。R.javaAndroidアプリは1つのファイルしか生成しないと思っていました。

1. そうですか。

2. そうでない場合、何が問題なのですか?

3. また、これら 2 つの問題は関連していますか、それとも他に何か問題がありますか?


以下は、問題のプロジェクトの AndroidManifest.xml です。


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="alpha.beta.charley.delta.echo.booger.ui"
      android:versionCode="2"
      android:versionName="UnofficialBuild">
    <uses-sdk android:minSdkVersion="10" />
    <application android:icon="@drawable/booger"
        android:label="@string/app_name">
        <activity android:name=".BoogerReport"
                  android:label="@string/app_name"
                  android:configChanges="keyboardHidden|orientation"
                  android:windowSoftInputMode="stateHidden">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="alpha.beta.charley.delta.message.boogerreport.CREATE" />
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="alpha.beta.charley.delta.message.category.LOCATION" /> 
            </intent-filter>
        </activity>
        <activity android:name=".BoogerReportView"
                  android:configChanges="orientation">
            <intent-filter>
                <action android:name="alpha.beta.charley.delta.message.boogerreport.OPEN" />
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
        <activity android:name=".BoogerList" 
                  android:configChanges="orientation" /> 
    </application>
</manifest>

質問に回答するための追加情報:

R.java生成されたファイルへのパス:

  1. alpha.beta.charley.delta
  2. alpha.beta.charley.delta.echo.booger.ui
  3. alpha.beta.charley.datamodel
4

2 に答える 2

1

最新の問題の答え

これを行う理由は、ライブラリをAndroidにインポートすると、R.javaそれらのライブラリにアタッチされているが自動生成されるためです。そうです、複数R.javaで結構です。


元の問題の答え

解決策を見つけました。R.java誰かが別のプロジェクトからファイルをインポートしました。このインポートを取り出して、問題を修正しました。

これにより、エラーコード1が返される問題が実際に修正されました。ただし、Eclipseを使用してプロジェクトをビルドする場合でも、3つのR.javaファイルがビルドされます。この状況に関する詳細をメインの投稿に追加します。

于 2012-01-25T16:38:27.343 に答える
0

私の推測では、スクリプトが作成している R.java に加えて、ADT プラグインが独自の R.java を生成しようとしていると思われます。コマンド ラインではなく Eclipse を使用している場合は、ADT プラグインを使用してアプリをビルドします。

于 2012-01-25T15:46:43.533 に答える