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


354

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

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

私もstyle.xmlファイルをバイパスし、追加しようとした@style/Theme.AppCompat.Lightの両方のためのAndroidManifest.xmlに直接<application><activity>android:theme="@style/ThemeAppCompat.Light"同じエラーが発生したすべての試みで。

今問題は、テーマを変更することができず、エラーをスローせずにビルドすることさえできません。以下は、私が受け取っているエラーで、新しいテーマを使用するように変更したstyle.xmlファイルが続きます。

Androidアプリでの作業に適度な経験があり、API 18(Android 4.3)でコンパイルするサポートライブラリとSDKの最新バージョンでEclipseを実行しています。

ビルド中に受け取ったエラー

エラー:アイテムの親の取得中にエラーが発生しました:指定された名前 '@ style / Theme.AppCompat.Light'に一致するリソースが見つかりませんでした。styles.xml / ActBarTest / res / values行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は読み込まれているように見えますが、リソースは読み込まれていません。


1
プロジェクトをクリーンアップしてください
。AppCompact

2
@ TheWizKid95実装しようとしているアプリとライブラリをクリーンアップしました。どちらもEclipseに従ってコードを変更することはなく、問題も修正されませんでした。
ブランドンエンリケス2013

リソース付きのサポートライブラリを追加しましたか?jarをlibsに追加するだけでは不十分です。
Gabriele Mariotti 2013

@GabrieleMariottiはいGoogleの指示に従って、リソースとプロジェクトライブラリを特別に追加しました。
ブランドンエンリケス2013

私にとってうまくいったのは、それをプロジェクトとしてワークスペースに追加することでした。jarをインポートしてbuildpathに追加するだけでは機能しませんでした。
ヨハン

回答:


386

次に行う必要があります。

  1. File->Import (android-sdk\extras\android\support\v7)。「AppCompat」を選択します
  2. Project-> properties->Android. セクションライブラリの[追加]で[AppCompat]を選択します
  3. 以上です!

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


65
これは私にはうまくいきません。私はここに書かれていることを正確に行いますが、指定された名前のエラーに一致する何百ものリソースが見つかりませんでした。欠落しているリソースは、API 11以降に含まれているスタイルですが、これはAPI 7から機能するはずです。欠落している接続はありますか?!
apocalypz

5
同様の問題があり、Theme.AppCompat.Light.NoActionBarテーマがappcompatライブラリに存在しません。
JMRboosties 2014年

9
ファイルのインポートで、「android-sdk」が見つかりません。「奇妙な」だけが表示されます。誰でも?
shahar eldad 14

2
apocalypz、リソースなしでライブラリをインポートしたため、リソースが不足していると思います。ここでは、「リソースとライブラリを追加する」ためのリンクです developer.android.com/tools/support-library/...は
Hades200621

1
上記の手順に従って、プロジェクトのlibsディレクトリにsdk \ extras \ android \ support \ v13android-support-v13.jarを追加すると、問題が解決します。
Wasim A. 2014

119

私のように、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">

これで、アプリケーションは正常に実行されます。


11
はい、これでうまくいきました。注目すべき重要な点は、テーマ(スタイル)に組み込まれた親属性 "android:"プレフィックスでは、このプレフィックスのない値は独自のスタイル、またはリンクしたライブラリのスタイルを参照することです... android-supportなど-v7-appcompat。
John Bentley、

res/values/styles.xml新しいAndroidプロジェクトにはありません。少なくともで作成した場合はそうではありませんandroid create project
weberc2 14

ウィザードで全画面アプリを選択してコントロールを非表示にしてプロジェクトを作成すると、
styles.xmlが

8
何もうまくいきません... 4時間は無駄になっています。指定した名前に一致するリソースがまだ見つかりません( 'theme'で値 '@ style / Theme.AppCompat.Light'を使用)。あきらめようとしています。
c.fogelklou 2014

2
私はそれらを他の方法で変更しただけで、実際、それが私のプロジェクトで必要な方法でした。
John

28

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

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

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

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

1
2つの* .imlファイルがあることに注意してください。ライブラリエントリを持つものは、プロジェクトのサブフォルダに含まれ、小文字のファイル名を持っています。
デビッドダグラス

2
これで問題が解決しました。内部のbuild.gradleの依存関係にappcompatを追加すると機能しました。物事を壊した別のプロジェクトと一致するように手動で編集したと言って後悔しています!
JJ_Coder4Hire 2014

28

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

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


4
ありがとうございました。それは私の状況の場合でした。ステップ1(ファイル->インポート(android-sdk \ extras \ android \ support \ v7。「appcompat」を選択)で、「ワークスペースにコピー」をチェックする必要があります。
香港

私は同様の問題に直面しました。本当にありがとう、それは本当にトリッキーでした
SILINIK

AndroidStudioで同じ問題。私はこれを理解するために3時間ほど費やしました。ありがとう!
ルーベンマルティネスジュニア

うん。これを確認できます。IntellJには、少なくともAppCompatとまったく同じ問題があります。この問題で4時間かかりました。
puelo 2014年

これは私にとっても解決策でした。appcompat_v7プロジェクトをターゲットプロジェクトと同じドライブにコピーし、libとして追加すると、問題なく動作しました。
MayaPosch 2015年

23

私はEclipseでAndroidサポートライブラリ(APL)プロジェクトとメインプロジェクト(MP)を使用して次のことを行いました。

  1. APLMPの両方が同じであることminSdkVersionを確認しましたtargetSdkVersion

  2. MPのビルド依存関係としてAPLを追加しました:

    1. MPの "Properties> Java Build Path"に入り、次に

    2. 「プロジェクト」タブを選択し、APLを追加します。

  3. MPのプロパティで、「Android」の下に、ライブラリの下のAPLへの参照を追加しました。

1と2は、Javaクラスへの参照が正常に機能するようにしましたが、APLから参照しようとするとmanifest.xmlMPのエラーが表示されました。これは、ステップ3を実行したときにのみ消えました。@style/Theme.AppCompat.Light


9
「@android:style / Theme.AppCompat ...」ではなく、必ず「@ style / Theme.AppCompat ...」を使用してください。この回答のこのプラス3で問題が解決しました。
BeccaP 2013

ポイント2は正しくないようです。ここで説明および修正されているように、ビルドエラーログメッセージが表示されます
。stackoverflow.com

18

少し遅いですが、AndroidStudioでこれを行う方法を次に示します。

アプリを右クリックしてプロパティに移動 アプリを右クリックしてプロパティに移動

依存関係に移動し、「+」記号をクリックしてライブラリの依存関係を依存関係に移動し、「+」記号をクリックしてライブラリの依存関係を選択します 選択しますappcompat-v7を選択し ます appcompat-v7を選択


12

IntelliJ IDEAソリューション。

1.ファイル名を指定して実行のAndroid SDK Managerは、インストールして、最新のSDKAndroidのサポートLibararyを。SDKとAndroidサポートライブラリのバージョンは同じである必要があります。私の場合は23です。別の亜種はあなたにエラーを与えます。2. IDEAプロジェクトのSDKバージョンを、前のステップでインストールした最後のバージョンに変更します。(ps。Mavenは使用できません)。
ここに画像の説明を入力してください

ここに画像の説明を入力してください

3.既存のソースからIDEAプロジェクトに新しいモジュールを追加します。
ここに画像の説明を入力してください

4. AppCompatプロジェクトを追加します。!!! 最後のSDKの下にもあるはずです! (ps。この手順の途中で「はい」と言います)
ここに画像の説明を入力してください

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

5.1。 モジュールの依存関係。選択したアンドロイド・サポート-V7-APPCOMPATを
ここに画像の説明を入力してください

5.2。2個 ライブラリの依存関係。追加のAndroid-SDK \エクストラ\ androidの\サポート\ V7 \ APPCOMPAT \ libsに\ androidの支援-v4.jarアンドロイド-サポート-V4 \ androidの支援-V7-appcompat.jarを
ここに画像の説明を入力してください

合計すると次のようになります。
ここに画像の説明を入力してください

6. 非常に重要です!!! 接頭辞が@style(別のものではない!)の
テーマ追加します
ここに画像の説明を入力してください



Android Studioソリューション。

1.ファイル名を指定して実行のAndroid SDK Managerは、インストールして、最新のSDKAndroidのサポートLibararyを。SDKとAndroidサポートライブラリのバージョンは同じである必要があります。私の場合は23です。別の亜種はあなたにエラーを与えます。
ここに画像の説明を入力してください

2.次にbuild.gradleを追加します

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

PS Android開発の初心者の方は、今すぐAndroid Studio&Gradleに移行することを強くお勧めします。Androidアプリを管理する最も簡単な方法が得られます。


私がこれまでAndroidで見つけたベストアンサー
Alex Jolig

10

Android Studio 1.2.2の場合

parent属性値から「android」をドロップします。

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

7

参照$ ANDROID_SDK / extras / android / support / v7 / appcompatが必要です


あなたはそれをどのように正確に参照するかについてより詳細に行くことを気にしますか?私はすでにAndroid開発者向けの指示としてその正確なフォルダーを参照しました。彼らのウェブサイトに記載されているとおりに指示に従いました。エラーなしでActionBarActivityが拡張されているため、少なくとも部分的に参照されていると言えます。
ブランドンエンリケス2013

3
appcompatAndroid Libraryとして参照すると、メインプロジェクトリソースはappcompatのテーマを見つけることができます
Crossle Song

これでうまくいきました。以前はJavaビルドパス内でそれを行っていました。
ブランドンエンリケス2013

5

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.+"
}

3

@rcdmkの手順に従います。あなたのプロジェクトからandroid support v4.jarを削除してください。appcompatにある新しい更新バージョンと競合します。


3

私は同じ問題を抱えており、解決のために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ビルドパスを見つけ、[プロジェクト]タブから他のファイルを削除してから追加します。「android-support-v7-appcompat」が表示されたら、それを選択して[プロジェクト]タブに追加する必要があります。
  6. Projectファイルの下にあるproject.propertiesファイルを確認すると、次のように表示されます。target = android-21 android.library.reference.1 = .. / android-support-v7-appcompat次に、ターゲットが21であるか、他に何を選択したかをAndroidManifest.xmlファイルで確認します。また、以前に選択したライブラリと同じライブラリ参照を確認します。

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


1
SDKマネージャーを使用してAndroidサポートライブラリをアップグレードし、古いappcompatライブラリをワークスペースから削除し、新しく更新されたappcompatライブラリを再インポートして(そしてワークスペースにコピーして)、ビルドしたのが役に立ちました。
Varun、2015

3

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

  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を再起動します。それでおしまい。あなたの問題は消えるはずです。


:)
Wasim A.

2

動作します:

<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

Android Studio 1.0.1ではImportダイアルージが異なるため、Svyatoslav Lobachsバージョンを機能させることができませんでした。

代わりに、SDK Managerで「Android Support Repository」をダウンロードしました。次に追加されました

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

build.gradle。私のために働いた。



1

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

私の場合、appcompat_v7プロジェクトを再度開き、両方のプロジェクトをクリーンアップ /再ビルドすることで問題を解決しました。


1

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

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

(Android SDK Manager-> Extra-> Android Support Library)

祝福、(債務者)<> <



0

私はこれについて本当にばかげた間違いをしました。毎回同じエラーが出たとき、何が悪いのかわからなかった。それから、私は自分のワークスペースのすべてのプロジェクトを閉じたら、すべての問題が始まってからの時間だと私に気づかされました。「appcompat_v7」が閉じていないかどうかを確認してください。開いている場合は、ダブルクリックしてプロジェクトを開き、クリーンアップしてプロジェクトを再度ビルドします。私の場合、エラーはなくなりました。幸せなコーディング!


0

この質問が投稿されたときにv13サポートライブラリが利用可能であったかどうかはわかりませんが、誰かがまだ苦労している場合は、追加android-support-v13.jarするとすべてが修正されることを確認しました。これは私がそれをした方法です:

  1. プロジェクトを右クリック->プロパティ
  2. 左側のコンテンツテーブルから[Javaビルドパス]を選択します
  3. 「ライブラリ」タブに移動します
  4. [外部jarを追加]ボタンをクリックして選択します <your sdk path>\extras\android\support\v13\android-support-v13.jar

0

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

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

0

どれだけの人がこれに気づいたか分かりません。ライブラリ「appcompat_v7」をサポートし、プロジェクトは同じディレクトリ(つまり、ワークスペースディレクトリ)にある必要があります。エラーがなくなるまでプロジェクトをクリーンアップしないでください。そうしないと、R.javaで苦労します。


0

任意の名前で新しいプロジェクトを作成し、appcompat_v7を使用してプログラムを新しくすることをお勧めします。

Right Click Project-> properties->Android

ライブラリセクションでAdd、ライブラリappcompatを選択します。


0

Eclipseでプロジェクトを右クリックし、[ビルドパスを選択]をクリックして、[ビルドパスの構成]を選択します。ウィンドウから必要なjarファイルを選択し、プロジェクトを更新します


0

受け入れられたソリューションは、かつて私のために機能していましたが、今は機能しません。新しいワークスペースに同じ種類のhello-world(!)を再作成し、コンパイルしてから、以下を含むすべてのディレクトリをコピーする必要がありました。.hgありました.hgignorehg diffショー:

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

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

EclipseはAPI 21向けにコンパイルする必要があり、API 19では何もできないようです。


0

appCompatライブラリを追加していて、SDKの場所からappCompatの適切な参照も指定している場合は、「キャッシュの無効化/再起動」を試してください。Android Studioの[ファイル ]メニュー
から見つけることができます。


0

私の場合、必要なライブラリが含まれていないSDKを使用したかったため、問題が発生しました。私が分を増やしたとき。SDKレベルの問題は消えました。もちろん、ライブラリ自体を直接含めると、エラーも削除されます。


0

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


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.