43

Android Studio私のプロジェクトがminSdkVersion19だったときに、Lプレビューリリースバージョンをダウンロードした後、上記のエラーが発生しました。

さらに、mindSdkVersion以下のように設定すると:

defaultConfig {
....
          minSdkVersion 'L'
....
    }

からのリソースに関して、以下のような数十のエラーが発生しますAppCompat-v7-21

/home/user/workspace/project/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0-rc1/res/values-v21/values.xml
Error:Error retrieving parent for item: No resource found that matches the given name '@android:TextAppearance.Material.SearchResult.Subtitle'.

だから私は2つの質問があります:

  1. AS が minSdkVersion について不平を言うのはなぜですか? AppCompat-v7 21 は L リリースのみをサポートしているためだと思います。しかし、なぜ ?また、秋に正式リリースする場合もL版のみ対応するのでしょうか?それは問題になるからです... それとも、Google I/O 2014 Keynote で指定されているように、アプリが Play ストアにプッシュされないようにするための一時的な制限ですか?
  2. 既に mindSdkVersion を L に設定しているのに、AppCompat-v7 21 がこれらのエラーについて文句を言うのはなぜですか?
4

6 に答える 6

56
compileSdkVersion 'android-L'

ブーム。終わり。

最終編集: Android 5.0 リリースの時点で、これはもはや問題ではなく、API レベル 21 を直接ターゲットにするだけです。

明確にするために編集: 実際、David_E が以下で指定したように、このソリューションは L バージョンでのみ機能します。L 以下のデバイス (例 <=4.4.4) にアプリをデプロイしようとすると、OLD_SDK が表示されます。アプリが L より前で動作するためには、古い v20 サポート lib + app compat + targetVersionSdk および compileVersionSdk を使用する必要があります。

dependencies {

        compile 'com.android.support:appcompat-v7:20.+'
        compile 'com.android.support:support-v4:20.+'
    }

    android {
        compileSdkVersion 20
        buildToolsVersion '20'

        defaultConfig {
            applicationId "com.example.application"
            minSdkVersion 10
            targetSdkVersion 20
            versionCode 1
            versionName "1.0"
        }
}
于 2014-06-26T18:11:55.243 に答える
32

ここに記載されている回答は、アプリが Android L でしか機能しないため、適切に機能しない可能性があります。

古い Android OS バージョンとの下位互換性を維持するために、gradle の依存関係を変更します。

から:

compile 'com.android.support:appcompat-v7:+'

に:

compile 'com.android.support:appcompat-v7:20.+'

エラーが について不平を言うことに注意してくださいcom.android.support:appcompat-v7:21.0.0-rc1。その理由はappcompat-v7:+、ライブラリの最新の依存関係をインポートするように gradle に指示するためですappcompat-v7。残念ながら、この最新バージョンは Android L でのみ機能するため、以前のバージョンを指す必要があります。

近い将来、Google がこれを修正することを願っています。

于 2014-06-26T21:48:57.837 に答える
4

動作中のバージョンで強制的に作業するには、gradle の依存関係を次のように変更するだけです。

dependencies {
    compile 'com.android.support:gridlayout-v7:19.0.1'
    compile 'com.android.support:appcompat-v7:19+'
    ...
}

だった:

compile 'com.android.support:appcompat-v7:+'

注意

SDK マネージャーの Tools & Extras を更新しました。

プロジェクトが壊れた後、上記のように修正しました。

今のところ、私はアンドロイド L と 4.4W を更新しません (今日のバグは十分です :-( )

于 2014-06-28T13:50:30.593 に答える
4

私にとってうまくいった方法は、Android Studio ベータ版をインストールすることでした (プレビュー リリースではなく、ベータ版は IO の一部として本日リリースされました)。

プレビュー リリースをアンインストールし、ベータ版をインストールして、プロジェクトを開きます。プロジェクト SDK または Studio SDK を使用するか、Android Studio の SDK を使用するかを尋ねられます。

プロジェクトの local.properties ファイルに移動し、sdk.dir がある場所で、バックスラッシュ () が二重になっていることを確認します。

Project Structure > SDK に移動し、これが私の PC の Android SDK を指していることを確認します。C:\Program Files(x86)\Android\android-studio\SDK.

次に、プロジェクトとライブラリには、build.gradle ファイルがあります。

compile 'com.android.support:support-v4 に変更します compile 'com.android.support:support-v4:20+

gradle ファイルを再同期し、すべて修正

于 2014-06-26T21:04:58.867 に答える
2

ご回答ありがとうございます。

私は変わらなければならなかった

compile 'com.android.support:support-v13:+'

に:

compile 'com.android.support:support-v13:20.+'

そして、すべてが完璧に機能するようになりました。

于 2014-07-16T09:50:50.563 に答える
0

さらに、ここでの他の回答では問題は解決しませんでしたが、Android Studio 0.8.0 で android-l の問題を解決する別の方法を見つけました。build.gradle の依存関係を変更した後、悲しいことに、コードが OLD_SKD と言う問題が発生し続けました。Galaxy S2を使用しています。

すべてを :19+ に変更する以外に:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19+'
    compile 'com.android.support:support-v4:19+'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.android.support:mediarouter-v7:19+'
}

それでもうまくいかないので、可能な限り元に戻さなければなりませんでした。

android {
    compileSdkVersion 19
    buildToolsVersion '19.1'
    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 19
        versionCode 1
        versionName '1.0'
    }

これで、アプリは電話で再び動作します。おそらく新しいモバイルを入手する必要がありますが、今のところ、これが誰かの助けになることを願っています.

于 2014-06-27T16:40:53.510 に答える