web-dev-qa-db-ja.com

IntelliJでライブラリ(Android-support-v7-appcompat)を追加する方法IDEA

プロジェクトを作成し、プロジェクト内のリソースファイルをコピーし、ライブラリ、プロジェクト構造に追加しました。スタイルはTheme.AppCompatです。エラーなしでコンパイルされましたが、降格例外を開始すると:

08-03 00:50:00.406: ERROR/AndroidRuntime(4055): FATAL EXCEPTION: main
        Java.lang.NoClassDefFoundError: Android.support.v7.appcompat.R$styleable
        at Android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.Java:98)
        at Android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.Java:58)
        at Android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.Java:98)
        at com.example.SampleMetrRost.CentralActivity.onCreate(CentralActivity.Java:12)
        at Android.app.Activity.performCreate(Activity.Java:4636)
        at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1051)
        at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:1924)
        at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:1985)
        at Android.app.ActivityThread.access$600(ActivityThread.Java:127)
        at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1151)
        at Android.os.Handler.dispatchMessage(Handler.Java:99)
        at Android.os.Looper.loop(Looper.Java:137)
        at Android.app.ActivityThread.main(ActivityThread.Java:4476)
        at Java.lang.reflect.Method.invokeNative(Native Method)
        at Java.lang.reflect.Method.invoke(Method.Java:511)
        at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:816)
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:583)
        at dalvik.system.NativeStart.main(Native Method)

お願い助けて。今日は一日中過ごしました。

66
Alex Malkov

Gradleなし( Gradleソリューションについてはここをクリック

  1. サポートライブラリプロジェクトの作成

  2. ライブラリプロジェクトをEclipseプロジェクトからIntellijにインポートします(この手順は、Eclipseでライブラリを作成した場合にのみ適用されます)。

  3. モジュールを右クリックして、「モジュール設定を開く」を選択します。

  4. V7 jarファイルのセットアップライブラリ Setup libraries of v7 jar file

  5. V7のセットアップライブラリモジュール Setup library module of v7

  6. V7ライブラリモジュールのアプリモジュール依存関係のセットアップ Setup app module dependency of v7 library module

83
Tsung Goh

Gradleを使用する

Gradleを使用している場合は、compile依存関係として追加できます。

説明書

  1. Android Support Repository SDKパッケージがインストールされていることを確認してください。 Android St​​udioは、ビルドプロセス中にこのリポジトリを自動的に認識します(単純なIntelliJについてはわかりません)。

    Android Support Repository

  2. 依存関係を{project}/build.gradleに追加します

    dependencies {
        compile 'com.Android.support:appcompat-v7:+'
    }
    
  3. Sync Project with Gradle Filesボタンをクリックします。

EDIT:これらの同じ命令は、Adding libraries with resources -> Using Android Studioの下の documentation にあるように見えます。

112
Austyn Mahoney

Mavenの使用

まず、 Maven Android SDK Deployer を使用して、ローカルのMavenリポジトリにAndroidライブラリをインストールする必要があります

その後、次のようにpomに依存関係を追加できます。

    <dependency>
        <groupId>Android.support</groupId>
        <artifactId>compatibility-v7-appcompat</artifactId>
        <version>${compatibility.version}</version>
        <type>apklib</type>
    </dependency>

    <dependency>
        <groupId>Android.support</groupId>
        <artifactId>compatibility-v7-appcompat</artifactId>
        <version>${compatibility.version}</version>
        <type>jar</type>
    </dependency>
10
Bersh

これは私の解決策です:

  1. $ ROOT_Android_SDK/extras/Android/support/v7/appcompatをプロジェクトROOTにコピーして貼り付けます

  2. Intellijで「プロジェクト構造」を開き、「プロジェクト設定」で「モジュール」をクリックし、「appcompat」->「Android」をクリックして、「ライブラリモジュール」チェックボックスがオンになっていることを確認します。

  3. 「appcompat」の下の「YOUR-PROJECT_NAME」をクリックし、「Android-support-v4」と「Android-support-v7-compat」を削除します。 「appcompat」がチェックされる前にチェックボックスを確認してください。そして、「OK」をクリックして「プロジェクト構造」ダイアログを閉じます。

  4. メインウィンドウに戻り、左上のプロジェクト領域で「appcompat」->「libs」をクリックします。 「Android-support-v4」を右クリックして、メニュー項目「ライブラリとして追加」を選択し、「モジュールに追加」を「プロジェクト」に変更します。 「Android-support-v7-compat」と同じです。

上記を行った後、intellijはAndroid-support-XXXXモジュールを正しく検出できるはずです。

がんばろう!

4
huangchang

mavenの別のソリューション(少なくとも私にとっては、より良いソリューション)は、ローカルAndroid SDKに含まれているmavenリポジトリを使用することです。これを行うには、ローカルAndroid SDKを指すpomに新しいリポジトリを追加するだけです。

<repository>
    <id>Android-support</id>
    <url>file://${env.Android_HOME}/extras/Android/m2repository</url>
</repository>

このリポジトリを追加した後、次のような標準のGoogle依存関係を追加できます。

<dependency>
    <groupId>com.Android.support</groupId>
    <artifactId>support-v13</artifactId>
    <version>${support-v13.version}</version>
</dependency>

<dependency>
    <groupId>com.Android.support</groupId>
    <artifactId>appcompat-v7</artifactId>
    <version>${appcompat-v7.version}</version>
    <type>aar</type>
</dependency>
3
JavierSP1209

もう1つの簡単な解決策は、これらの行をbuild.gradleファイルに貼り付けることです

dependencies {

    //import of gridlayout
    compile 'com.Android.support:gridlayout-v7:19.0.0'
    compile 'com.Android.support:appcompat-v7:+'
}
3
Creative Mentor

図書館プロジェクトとして

http://developer.Android.com/tools/support-library/setup.html に従ってライブラリプロジェクトにリソースを追加する必要があります。

セクション>リソースを使用したライブラリの追加

次に、ワークスペースにAndroid-support-v7-appcompatライブラリを追加し、アプリプロジェクトへの参照として追加します。

アプリプロジェクト内のすべてのリソースの定義も機能します(ただし、追加する定義がたくさんあり、それらのいくつかを見逃しています)。これは推奨されるアプローチではありません。

1
IanB

Austyn Mahoney's answer の更新として、構成 'compile'は廃止され、 'implementation'および 'api'に置き換えられました。

2018年末に削除されます。詳細については、 here を参照してください。

0

これは私の解決策であり、前の解決策に非常に似ています:

<dependency>
        <groupId>com.google.Android</groupId>
        <artifactId>support-v7</artifactId>
        <scope>system</scope>
        <systemPath>${Android.home}/support/v7/appcompat/libs/Android-support-v7-appcompat.jar</systemPath>
        <version>19.0.1</version>
</dependency>

{Android.home}はAndroid SDKのルートディレクトリであり、repositoryではなくsystemPathを使用します。

0
db80