1

Eclipse で開発されたアプリケーションを Intellij Idea に移行しようとしています。アプリケーションは ActionBarSherlock と Android-MenuDrawer (SimonVT) を使用しています。

Maven を使用して Android-MenuDrawer ライブラリをインポートする際に問題が発生しています。ActionBarSherlock を使用すると問題なくコンパイルされ、プロジェクトでうまく使用できますが、MenuDrawer では使用できません。

Maven でコンパイルしようとすると、次のエラーが表示されます。

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /D:/Android/menudrawer/menudrawer/src/net/simonvt/menudrawer/MenuDrawer.java:[854,40] cannot find symbol
  symbol:   variable LAYOUT_DIRECTION_RTL
  location: class net.simonvt.menudrawer.MenuDrawer
[ERROR] /D:/Android/menudrawer/menudrawer/src/net/simonvt/menudrawer/MenuDrawer.java:[861,40] cannot find symbol
  symbol:   variable LAYOUT_DIRECTION_RTL
  location: class net.simonvt.menudrawer.MenuDrawer
[ERROR] /D:/Android/menudrawer/menudrawer/src/net/simonvt/menudrawer/MenuDrawer.java:[873,14] cannot find symbol
  symbol: method onRtlPropertiesChanged(int)
[ERROR] /D:/Android/menudrawer/menudrawer/src/net/simonvt/menudrawer/MenuDrawer.java:[882,80] cannot find symbol
  symbol:   variable LAYOUT_DIRECTION_RTL
  location: class net.simonvt.menudrawer.MenuDrawer
[ERROR] /D:/Android/menudrawer/menudrawer/src/net/simonvt/menudrawer/MenuDrawer.java:[871,5] method does not override or implement a method from a supertype
[ERROR] /D:/Android/menudrawer/menudrawer/src/net/simonvt/menudrawer/MenuDrawer.java:[1325,72] cannot find symbol
  symbol:   variable LAYOUT_DIRECTION_RTL
  location: class net.simonvt.menudrawer.MenuDrawer
[ERROR] /D:/Android/menudrawer/menudrawer/src/net/simonvt/menudrawer/ViewHelper.java:[44,57] cannot find symbol
  symbol:   variable JELLY_BEAN_MR1
  location: class android.os.Build.VERSION_CODES
[ERROR] /D:/Android/menudrawer/menudrawer/src/net/simonvt/menudrawer/ViewHelper.java:[45,21] cannot find symbol
  symbol:   method getLayoutDirection()
  location: variable v of type android.view.View
[ERROR] /D:/Android/menudrawer/menudrawer/src/net/simonvt/menudrawer/ViewHelper.java:[48,20] cannot find symbol
  symbol:   variable LAYOUT_DIRECTION_LTR
  location: class android.view.View
4

1 に答える 1

1

エラーを見つけることができました。問題は android sdk の依存関係です。実際は 4.1.1.4 (api 16) が maven リポジトリの最後です。しかし、プロジェクトにはAPI 17+が必要です

次の手順に従ってください: 1) sdk 17+ のバージョンをダウンロードします。 2) maven-android-sdk-deployerプロジェクトをダウンロードし、インストールの手順を読みます。 3) プロパティ 4.1 を変更して pom.xml ファイル (ルート) を編集します。 SDK に応じて、次のいずれかによる 1.4 および 16:

<android.version>4.2.2_r2</android.version>
<android.platform>17</android.platform>

<android.version>4.3_r2</android.version>
<android.platform>18</android.platform>

<android.version>4.4_r1</android.version>
<android.platform>19</android.platform>

また、編集

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

<dependency>
    <groupId>android</groupId>
    <artifactId>android</artifactId>
    <version>${android.version}</version>
</dependency>

また、maven プラグインのバージョンを 3.6.0 から 3.8.0 に更新する必要があります。

これを変える:

<plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <version>3.6.0</version>
    <configuration>
        <sdk>
            <platform>${android.platform}</platform>
        </sdk>
    </configuration>
    <extensions>true</extensions>
</plugin>

これで:

<plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <sdk>
            <platform>${android.platform}</platform>
        </sdk>
    </configuration>
    <extensions>true</extensions>
</plugin>

4) pom.xml (menudrawer フォルダー) を編集し、以下を編集します。

<dependency>
    <groupId>com.google.android</groupId>
    <artifactId>android</artifactId>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>android</groupId>
    <artifactId>android</artifactId>
    <scope>provided</scope>
</dependency>

Maven プロジェクトを再充電してコンパイルする

于 2013-12-06T19:44:35.527 に答える