web-dev-qa-db-ja.com

新しいAndroid ActionBarサポート用のTheme.AppCompat.Lightが見つかりません

数日前にGoogleからリリースされた新しい ActionBar supportライブラリを実装しようとしています。これまでは、Google Developer's Support Library Setup pageにリストされているのと同じ方法でActionBarSherlockを問題なく実装できました(これはActionBarSherlockが行った方法と似ています)。ライブラリプロジェクトをライブラリとして自分のプロジェクトにもロードしています。

ライブラリが正常にロードされていることがわかります。 MainActivity.JavaのActivityを拡張する代わりに、ActionBarActivityを拡張するように変更した場合(Googleの指示に従って)、エラーは発生せず、正しくインポートされます。

@style/Theme.AppCompat.Light<application>の両方について、style.xmlファイルを迂回して<activity>Android:theme="@style/ThemeAppCompat.Light"の両方のAndroidManifest.xmlに直接追加してみても、同じエラーが発生します。

今の問題は、私はそれがテーマを変更することができないことです。以下に表示されるエラーの後に、新しいテーマを使用するように変更したstyle.xmlファイルを示します。

私はAndroidアプリの作業にある程度の経験があり、最新バージョンのSupport LibrariesとSDKをAPI 18(Android 4.3)でコンパイルしてEclipseを実行しています。

ビルド中に受信したエラー

error:アイテムの親の取得中にエラーが発生しました:指定された名前 '@ style/Theme.AppCompat.Light'に一致するリソースが見つかりませんでした。 styles.xml/ActBarTest/res/values line 3 Android AAPTの問題

style.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.ProsoftStudio.ACTest" parent="@style/Theme.AppCompat.Light">
    </style>
</resources>

助言がありますか?これはActionBarSherlockの問題ではありませんでした。この新しいサポートライブラリを使用して作業したいです。 .jarはロードされているがリソースはロードされていないようです。

345

次にする必要があります:

  1. File->Import (Android-sdk\extras\Android\support\v7)。 「AppCompat」を選択してください
  2. Project-> properties->Android.セクションライブラリで「追加」をクリックし、「AppCompat」を選択します。
  3. それがすべてです!

注:メニュー項目で「Android:showAsAction」を使用している場合は、例のように接頭辞Androidを変更する必要があります http://developer.Android.com/guide/topics/ui/actionbar.html

386

私のように、 http://developer.Android.com/training/basics/actionbar/setting-up.html にあるAndroidのチュートリアルに従っていて、AppBaseThemeを変更してみてくださいすべてのstyles.xmlファイルのスタイル。詳細に:

  1. ファイルres/values/styles.xmlで次の行を変更します。

    <style name="AppBaseTheme" parent="Android:Theme.Light">
    

    に:

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
    
  2. ファイルres/values-v11/styles.xmlで次の行を変更します。

    <style name="AppBaseTheme" parent="Android:Theme.Holo.Light">
    

    に:

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
    
  3. ファイルres/values-v14/styles.xmlで次の行を変更します。

    <style name="AppBaseTheme" parent="Android:Theme.Holo.Light.DarkActionBar">
    

    に:

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    

これでアプリケーションは正常に動作するはずです。

116
marco110

私はこの問題と私の経験を共有します。私はこのせいで頭がおかしくなりましたが、問題は私のコードではなくEclipse自体のバグであることがわかりました: Eclipseでは、他のAndroidプロジェクトでAndroidライブラリプロジェクトを参照できません

そのため、C:ドライブにAndroid Support Libraryがあり、コンピューターのD:ドライブにプロジェクトがある場合、Eclipseは正しく機能せず、Android Support Libraryがどこにあるのかわかりません(緑色のチェックマークが赤い十字に変わります)。 )これを解決するには、両方のプロジェクトを同じハードドライブに移動する必要があります。

28
DrFred

これは、プロジェクト構造モジュールを変更した場合にAndroid Studioで発生する可能性がある問題です。この場合、依存関係をもう一度追加する必要があります。テキストエディタで 'build.gradle'ファイルを編集して必要な依存関係を含めます。

dependencies {
    compile 'com.Android.support:appcompat-v7:+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

これにより、libコンポーネントで '{your_project_name} .iml'ファイルが更新されます。

<orderEntry type="library" exported="" name="appcompat-v7-19.0.1" level="project" />
25
David Douglas

私はEclipseでAndroid Support Library( _ apl _ )プロジェクトとMain Project( _ mp _ )を使って次のことを行いました。

  1. _ apl _ _ mp _ の両方のminSdkVersiontargetSdkVersionが同じであることを確認してください。

  2. _ mp _ のビルド依存関係として _ apl _ を追加しました。

    1. _ mp _ の[Properties]> [Java Build Path]に移動し、次に

    2. [プロジェクト]タブを選択して _ apl _ を追加します。

  3. _ mp _ のプロパティの "Android"の下に、 _ apl _ の下にライブラリの参照を追加しました。

1と2はうまく動作するJavaクラスへの参照を得ました...しかし、 _ apl _ からmanifest.xmlを参照しようとしたとき、私はまだ@style/Theme.AppCompat.Light for _ mp _ のエラーを見ました。これは私がステップ3を実行したときに消えました。

23
yogi

少し遅れていますが、ここで私はそれをAndroidStudioで実現する方法を説明します。

アプリを右クリックしてプロパティに移動します Right click on app to goto properties

Dependenciesに行き、 '+'をクリックしてライブラリの依存関係を選択してください。 Go to Dependencies and click on '+' sign and choose library dependency appcompat-v7を選択してください Choose appcompat-v7

16
Rahul Kumar

IntelliJ IDEA解決策

1.Android SDK Managerを実行し、最新のSDKAndroid Support Libararyをインストールします。 SDKとAndroid Support Libararyのバージョンは同じになります。私の場合23他の変種はあなたにエラーを与えるでしょう。
enter image description here
2. IDEAプロジェクトのSDKバージョンを、前の手順でインストールした最後のバージョンに変更します。 (PS。あなたはMavenを使用してはいけません)。
enter image description here

3.既存のソースからあなたのIDEAプロジェクトに新しいモジュールを追加します。
enter image description here

4. AppCompatプロジェクトを追加します。 !!!最後のSDKの下にもあるはずです!(ps。このステップの途中で「はい」と言ってください)
enter image description here

5.メインのプロジェクトモジュールの設定を開き、それに次の3つの依存関係を追加します。

5.1。モジュールの依存関係。 Android-support-v7-appcompatを選択しました
enter image description here

5.2。 2パソコンライブラリの依存関係Android-sdk¥extras¥Android¥support¥v7¥appcompat¥libs¥Android-support-v4.jarおよびAndroid-support-v4¥Android-support-v7-appcompat.jar
enter image description here

合計すると:
enter image description here

6.非常に重要です!!!
テーマ接頭辞@styleを付けて(別ではありません!)を追加します。
enter image description here



Android Studioソリューション

1.Android SDK Managerを実行し、最新のSDKAndroid Support Libararyをインストールします。 SDKとAndroid Support Libararyのバージョンは同じになります。私の場合23他の変種はあなたにエラーを与えるでしょう。
enter image description here

2.build.gradleの横に追加

dependencies {
    compile 'com.Android.support:appcompat-v7:23.0.1'
} 

P.SあなたがAndroidの開発に不慣れであれば、今すぐAndroid Studio&Gradleに移行することを強くお勧めします - あなたはあなたのAndroidアプリを管理する最も簡単な方法を得るでしょう。

12
Yuliia Ashomok

Android Studio 1.2.2の場合

parent属性値から "Android"を削除します。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
9
mumush

参照が必要です$ Android_SDK/extras/Android/support/v7/appcompat

7
Crossle Song

IntelliJ IDEAまたはAndroid Studioの場合:

これをapp.gradleビルドファイルに追加してください。

dependencies {
    compile "com.Android.support:appcompat-v7:21.0.+"
} 

-v:xx.0+をあなたのビルドターゲットに置き換えてください。もしあなたが19のプラットフォームを持っていれば、それは次のようになるはずです:

dependencies {
    compile "com.Android.support:appcompat-v7:19.0.+"
}
5
geniushkg

私の問題は以下の手順で解決します

  1. ファイル - >インポート(Android -SDK\extras\Android\support\v7\appcompat)
  2. [プロジェクト] - > [プロパティ] - > [Android]を右クリックします。セクションライブラリ「追加」で、ステップ1に含まれているライブラリappcompatを選択します。
  3. プロジェクトのlibsディレクトリからすべてのファイルを削除します
  4. 次のファイルをプロジェクトのlibsディレクトリに追加します<SDK-PATH>\extras\Android\support\v13Android-support-v13.jar

    必要に応じてEclipseを再起動してください。それでおしまい。あなたの問題は解決するはずです。

3
Wasim A.

私は同じ問題を抱えており、解決のために4〜5時間無駄にしました。私の問題は解決しました。

  1. SDKマネージャからパッケージ「Android Support Library」と「Android Support Repository」を削除します。
  2. 「Android Support Library」と「Android Support Repository」を再インストールしてください。
  3. 「Android-support-v7-appcompat」または「appcompat_v7」を削除します。
  4. "adt-bundle-windows-x86_64-20140702\sdk\extras\Android\support\v7\appcompat"からAndroid-support-v7-appcompatをインポートします。
  5. プロジェクトを選択し、ファイルからプロパティを選択してJava Build Pathを見つけ、次に[Project]タブから他のものを削除してから[Add]をクリックします。そして、あなたは "Android-support-v7-appcompat"を見る必要があります、それを選択してProjectタブに追加してください。
  6. プロジェクトファイルの下にあるproject.propertiesファイルを確認してください。このようになります。 target = Android-21 Android.library.reference.1 = ../Android-support-v7-appcompat次に、targetが21の場合はAndroidManifest.xmlファイルを、それ以外の場合は選択したものを確認します。あなたが以前に選んだあなたの図書館と同じ図書館参照もチェックしてください。

あなたがあなたの解決策を見つけることを願っています。

3
syildizeli

@rcdmkの手順に従ってください。あなたのプロジェクトのAndroidサポートv4.jarを削除します。それはappcompatにある新しい更新版と衝突します。

3
i_am_leo

動作します:

<style name="MyApp" parent="Theme.AppCompat.Light">
</style>
<style name="MyApp" parent="@style/Theme.AppCompat.Light">
</style>
<style name="Theme.AppCompat.Light.MyApp">
</style>
2
Yin

Import dialougeはAndroid Studio 1.0.1とは異なるため、Svyatoslav Lobachsバージョンを動作させることができませんでした。

代わりに、私はSDKマネージャで「Android Support Repository」をダウンロードしました。それから追加

dependencies {
...
compile "com.Android.support:appcompat-v7:18.0.+"
}

build.gradleへ。私のために働きました。

2
qwertz

最速のソリューション:

プロジェクトを右クリック - > Androidツール - >サポートライブラリを追加..

enter image description here

1
Jesus Dimrix

プロジェクトを右クリックして [無関係なプロジェクトを閉じる] を選択した後、OPと同じ問題が発生しました。

私の場合は、 appcompat_v7 プロジェクトを再度開いて両方のプロジェクトをクリーン/再構築することで問題を解決しました。

1

http://developer.Android.com/tools/support-library/setup.html にバグがあります。 「プロパティー」 - >「Javaビルド・パス」 - >「プロジェクト」および「注文とエクスポート」には、jarはありません。それらを削除し、 'Android Private Libraries'と 'Android Dependencies'をチェックすることで私の問題は解決しました。

1
Joe C

HelloWorldのようなプロジェクトの間に、2015年1月14日の時点でEclipse(Luna)/ AndroidSDK(Android Stduioではない)が最新のツールとライブラリーで使用されていた時に私は起こりました。これらのツールをインストールしてHelloWorldを最初のアプリにしたとき、私はすべてのデフォルトを受け入れました。 - これが私の場合の問題です。

まず、「Android Support Library」ライブラリがインストールされているかどうかを確認してください。そうでない場合は、それをインストールしてください。デフォルトではインストールされていません。あなたはメニューで利用可能な「Android SDKマネージャ」でそれをすべてするかもしれません。

(Android SDKマネージャ - >追加 - > Androidサポートライブラリ)

祝福、(債務者)<> <

1
Youngsup Kim

受け入れられた解決策はかつて私のために働いていましたが、今はしません。私は新しいワークスペースで同じ種類のハローワールド(!)を再作成し、コンパイルしてから、.hg.hgignoreを含むすべてのディレクトリをコピーする必要がありました。 hg diffは以下を表示します。

-        Android:targetSdkVersion="19" />
+        Android:targetSdkVersion="21" />

Binary file libs/Android-support-v4.jar has changed

EclipseがAPI 21用にコンパイルしようとしていて、API 19では何もできないようです。

私は同じ問題を抱えていたし、答えに記載されているようにjar /ライブラリをインポート/追加した後でもエラーを解決できないでしょう。欲求不満から、私はちょうど新しいワークスペースを作成し、新鮮なAndroidプロジェクトを作成しました、そしてそれは自動的にappcompat_v7をインポートしました、そして、クリーンとビルドに関するエラーはありませんでした。手動で単一のjar /ライブラリをインポートする必要はありませんでした。ちなみに私はEclipse Mars.1 Release(4.5.1)を使用していて、新しいAndroidプロジェクトを作成するたびにまったく同じ問題に直面していました。

0
API

eclipseでは、プロジェクトを右クリックして - >ビルドパスを選択し、次にビルドパスの設定を選択します。ウィンドウから必要なjarファイルを選択し、プロジェクトを更新します。

0
Rahul

私はあなたのうちの何人がこれに気付いたのかわからない。サポートライブラリ "appcompat_v7"とあなたのプロジェクトは同じディレクトリ(私はワークスペースディレクトリを意味します)にあるべきです。エラーがなくなるまでプロジェクトをきれいにしないでください。

0
Isham

すべて忘れます。 Android Studioを使用してダウンロードしたappcompatライブラリを使用するだけです。欠けている定義がすべてあります。あなたがEclipseで使っているかどうかに関係なく。

0
Rohit Rokde

Android StudioまたはIntelliJの場合は、gradle.buildで依存関係を更新するだけで済みます。私は以下を使いました:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.Android.support:appcompat-v7:21.0.2'
}
0
BostonGeorge

appCompat Libraryを追加し、SDKの場所からappCompatを正しく参照している場合は、 "キャッシュの無効化/再起動" を試してください。
Android Studioの "File" メニューから見つけることができます。

0
Suraj Dubey

私の場合は、必要なライブラリが含まれていないSDKを使用したいので、問題が発生しました。私は分を増やしたとき。 SDKレベルで問題が解決しました。もちろん、ライブラリ自身を直接インクルードすることで、エラーも取り除かれるはずです。

0

私はこれを本当に愚かなミスをしました。私は毎回同じエラーを受けていたとき私は何が間違っていたのか理解することができませんでした。それから私は、私が私の仕事場の中のすべてのプロジェクトをいったん閉じた後、それがすべての問題が始まってからの時であることを私にクリックしました。 SOあなたの "appcompat_v7"が閉じられていないかどうかを確認してください。その場合は、ダブルクリックしてプロジェクトを開き、プロジェクトをクリーンアップしてもう一度ビルドします。私の場合、エラーはなくなりました。ハッピーコーディング!

0
Riddhi Dudani

この質問が投稿されたときにv13サポートライブラリが利用可能かどうかはわかりませんが、それでも問題が解決しない場合は、Android-support-v13.jarを追加するとすべてが解決することがわかりました。これが私のやり方です。

  1. プロジェクトを右クリック - >プロパティ
  2. 左側の目次から「Java Build Path」を選択します。
  3. [ライブラリ]タブに移動します
  4. 外部jarボタンを追加して<your sdk path>\extras\Android\support\v13\Android-support-v13.jarを選択
0
swap_1712

私はエラーメッセージがあります:

エラー:(18)アイテムの親の取得中にエラーが発生しました:指定された名前 'Theme.AppCompat.NoActionBar'に一致するリソースが見つかりません。

この設定では:

  compileSdkVersion 23
  buildToolsVersion "23.0.1"

テーマを以下から変更する必要があります。

 <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"/>

に:

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"/>
0
Elenasys

新しいプロジェクトを任意の名前で作成してから、appcompat_v7を使用して新しいプログラムを作成したほうがよいでしょう。

Right Click Project-> properties->Android

Section library Addでlibrary appcompatを選択します。

0
Sale