buildToolsVersion '26 .0.2 'のAndroid Studioを2.3から3.0に更新した後、シンボル'?attr / actionBarSize 'を解決できません


119

Android Studioを2.3から3.0に更新したbuildToolsVersion後、26.0.0から26.0.2 に変更すると、次のエラーが発生します。

Cannot resolve symbol '?attr/actionBarSize

Xmlコード:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:titleTextColor="@android:color/white"/>

依存関係:

compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'

多分あなたはgradleのバージョンをアップグレードしました。
エヴァン

回答:


243

何も助けにはなりませんでしたが、変化しました:

?attr/actionBarSizeするために?android:attr/actionBarSize仕事をしてくれました。

これは実際にはいくつかのバージョンのバグです。修正しない場合でも、Androidは実行時に自動的に修正します。


20
?android:attr/actionBarSizeはAPI 21とのみ互換性があると思います、?attr/actionBarSizeそれを見るにはAndroid Studioに21より前のSDKをインストールする必要があります。私のもう1つの問題は、compileSdkとサポートライブラリが同じメジャーバージョン番号(私の場合は27)であることを確認することでした
Daniel Wilson

2
うーん、少し魔法のように見えますが、それは機能します。さまざまなSDKで何が壊れ、何が機能し、その理由を正確に説明する明確な説明を見たいです。
SMBiggs 2018年

プロジェクトはこのエラーでコンパイルおよびビルドできるので、バグのようです。
LMaker

34

すべてのライブラリバージョンを26.1.0(最新バージョンに)更新し、さらに以下を追加します。

compile 'com.android.support:support-v4:26.1.0'

Android Studio 3.0.0以降を使用している場合は、

implementation 'com.android.support:support-v4:26.1.0'

?attr/actionBarSizev4ライブラリの一部であるため、プロジェクトを同期するとエラーが自動的に解決します。


話しているライブラリのバージョンを指定します
D_Alpha

私は変更する必要がありました: 'com.android.support:support-v4:26.1.0'をコンパイルするために実装 'com.android.support:support-v4:26.1.0'
Louis Parkin

1
今のimplementation代わりに使用してくださいcompile
Suragch 2018

この答えは選択された答えではないはずです。必要のないときにsupport-v4ライブラリを使用する必要があるためです。あなたはシドとヴィクトリアクリモバの答えが最善の答えです。プロジェクトで不要なライブラリを簡単に使用するのを避けることができます...
エブレンユルテセン

この答えは私を助けませんでした。シドの答えは役に立ちますが、android:すでにandroid名前空間を追加しているのにxmlns:android="http://schemas.android.com/apk/res/android"誰かが知っているのになぜプレフィックスが必要なのか分かりませんか?
user1209216

28

プロジェクトのディレクトリ階層で、「Android」を「Project」に切り替えます。次に、フォルダ「.idea / libraries」を削除します。「ライブラリ」のみを削除します。メニュー「ファイル->キャッシュの無効化/再起動...->無効化して再起動」からオプションを選択します。


3
これも私にとってはうまくいきました。しかし、好奇心が強い、なぜそうしたのか。「キャッシュの無効化/再起動」は正確には何をしますか?
Anil Gorthy

ありがとう。それは私のために働いたcom.android.support:support-v4:27.1.1
Arash

11

こんにちは、これが少し遅れていることを知っています。

Android Studio 3.0に更新したときに、これにも遭遇しました

私がしたことは変わった

compile 'com.android.support:support-v4:26.1.0'

implementation 'com.android.support:support-v4:26.1.0'

それが誰かを助けることを願っています。


support_library = '27 .1.1 'からsupport_library = '27 .1.0'でうまくいきました。ダウングレードが修正された理由がわかりません。
Tokenizer

4

これは私がまったく同じ問題を修正するためにしたことです。1. SDKマネージャーに移動します。2. Android API 27とAndroid 8.0(Oreo)を確認します。3。[適用]をクリックして、これらのSDKをダウンロードしてインストールします。4。build.gradleで、「buildToolsVersion "26.0.1"」を「buildToolsVersion "26.0.2"」に変更します。そしてgradle syncを行います。

これが問題の解決に役立つことを願っています。


3

buildToolsVersionのバージョンが依存関係のバージョンと異なります(たとえば、buildToolsVersionは27.0.0ですが、実装は「com.android.support:support-v4:27.0.1」です)。それらを同じにします。


2

私の問題は、変更することで解決compileSdkVersionしてtargetSdkVersionから、26最後のバージョンに27もuはウルアップグレードする必要がある、dependenciesとします27

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com......"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

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

これがあなたの問題も解決することを願っています:)


1

これをbuild.gradle(app)依存関係に追加してみてください:

resolutionStrategy {
    force libraries.support.appCompat
    force libraries.support.design
    force 'com.android.support:support-utils:26.0.1'
    force 'com.android.support:support-compat:26.0.1'
}

1

これはうまくいきました。

コンパイルとサポートのlibバージョンを26.xxから27.xxに更新しました


1

私はここですべての答えを試し、多くの場所から他の多くの答えを試しましたが、私のために働いたのは以下のテクニックだけです。簡単な方法は、プロジェクトを閉じてから同じプロジェクトをGradleプロジェクトとしてインポートするだけです。 または、プロジェクト構造->プロジェクト-> Gradelプラグイン= 4.4とAndroidプラグインバージョン= 3.1.4に変更することもできます。上記の方法はどちらも機能します。

注:これらのバージョン(4.4、3.1.4)は、この回答を書いている時点で最新のものです。これらの代わりに最新バージョンを使用してください。


0

多分あなたはgradleのバージョンをアップグレードしました。私のgradleバージョンが4.4で、プラグインバージョンが3.1.1の場合、問題ありません。

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


0

この作品:

$ HOME / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-27.1.1.aar内のすべてのファイルを削除します



0

Androidサポートライブラリを置き換えてください。

から

27.1.1

28.0.0-alpha3

次の場合は27から28に置き換えます。

compileSdkVersion 28
buildToolsVersion "28.0.0"
targetSdkVersion 28

これで問題が解決します。

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