プロジェクトを作成し、プロジェクト内のリソースファイルをコピーし、ライブラリ、プロジェクト構造に追加しました。スタイルは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)
お願い助けて。今日は一日中過ごしました。
ライブラリプロジェクトをEclipseプロジェクトからIntellijにインポートします(この手順は、Eclipseでライブラリを作成した場合にのみ適用されます)。
モジュールを右クリックして、「モジュール設定を開く」を選択します。
V7 jarファイルのセットアップライブラリ
V7のセットアップライブラリモジュール
V7ライブラリモジュールのアプリモジュール依存関係のセットアップ
Gradleを使用している場合は、compile
依存関係として追加できます。
説明書
Android Support Repository
SDKパッケージがインストールされていることを確認してください。 Android Studioは、ビルドプロセス中にこのリポジトリを自動的に認識します(単純なIntelliJについてはわかりません)。
依存関係を{project}/build.gradle
に追加します
dependencies {
compile 'com.Android.support:appcompat-v7:+'
}
Sync Project with Gradle Files
ボタンをクリックします。
EDIT:これらの同じ命令は、Adding libraries with resources -> Using Android Studio
の下の documentation にあるように見えます。
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>
これは私の解決策です:
$ ROOT_Android_SDK/extras/Android/support/v7/appcompatをプロジェクトROOTにコピーして貼り付けます
Intellijで「プロジェクト構造」を開き、「プロジェクト設定」で「モジュール」をクリックし、「appcompat」->「Android」をクリックして、「ライブラリモジュール」チェックボックスがオンになっていることを確認します。
「appcompat」の下の「YOUR-PROJECT_NAME」をクリックし、「Android-support-v4」と「Android-support-v7-compat」を削除します。 「appcompat」がチェックされる前にチェックボックスを確認してください。そして、「OK」をクリックして「プロジェクト構造」ダイアログを閉じます。
メインウィンドウに戻り、左上のプロジェクト領域で「appcompat」->「libs」をクリックします。 「Android-support-v4」を右クリックして、メニュー項目「ライブラリとして追加」を選択し、「モジュールに追加」を「プロジェクト」に変更します。 「Android-support-v7-compat」と同じです。
上記を行った後、intellijはAndroid-support-XXXXモジュールを正しく検出できるはずです。
がんばろう!
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>
もう1つの簡単な解決策は、これらの行をbuild.gradleファイルに貼り付けることです
dependencies {
//import of gridlayout
compile 'com.Android.support:gridlayout-v7:19.0.0'
compile 'com.Android.support:appcompat-v7:+'
}
http://developer.Android.com/tools/support-library/setup.html に従ってライブラリプロジェクトにリソースを追加する必要があります。
セクション>リソースを使用したライブラリの追加
次に、ワークスペースにAndroid-support-v7-appcompat
ライブラリを追加し、アプリプロジェクトへの参照として追加します。
アプリプロジェクト内のすべてのリソースの定義も機能します(ただし、追加する定義がたくさんあり、それらのいくつかを見逃しています)。これは推奨されるアプローチではありません。
Austyn Mahoney's answer の更新として、構成 'compile'は廃止され、 'implementation'および 'api'に置き換えられました。
2018年末に削除されます。詳細については、 here を参照してください。
これは私の解決策であり、前の解決策に非常に似ています:
<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を使用します。