RecyclerView for Android L-プレビューをインポートする方法


90

サポートライブラリから新しいRecyclerViewを使用しようとしています。SDK Managerを使用して、サポートライブラリの20アップデートをダウンロードしました。

jarファイルをlibsフォルダーに追加し、ビルドパスに追加しました。RecyclerViewを使用してもうまくいきません。

Android開発者のAPIに従って、gradle依存関係も使用しようとしました-これが適切な場所かどうかは不明です-このページはAndroidTVに関連しています:

 com.android.support:recyclerview-v7:20.0.+

プロジェクトをGradle同期できません。

何か案は?

回答:


82

私は次の行を使用して作成しましたが、これは私にとってはうまくいきます。

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'

AndroidXの場合

implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.cardview:cardview:1.0.0'

完全なチュートリアルについては、こちらをご覧ください


エラー:タスク ':app:dexDebug'の実行に失敗しました。> com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:Process 'command' / usr / lib / jvm / java-7-openjdk-amd64 / bin / java '' finished with non -zero exit value 2 .iプロジェクトに2番目の依存関係を追加すると、プロジェクトを実行するとこのエラーが発生します。修正してください。
Ajay Bhayani、2015

私のアプリのgradle.buildは、すでに「com.android.support:appcompat-v7:23.2.1」をコンパイルしています。だから私はコンパイル「com.android.support:recyclerview-v7:23.2.1」を追加しようとしました-appcompatと同じバージョンですが、gradle同期が失敗しました、「com.android.support」のように「+」に変更しようとしました: recyclerview-v7:23.2。+ '、失敗も:(
Andiana

164

理解した。

次のgradle依存関係を追加する必要があります:

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

私がコンパイルしていた別の問題はでしたcompileSdkVersion。どうやらあなたはそれをコンパイルする必要がありますandroid-L

build.gradleファイルは次のようになります。

apply plugin: 'android'
android {
    compileSdkVersion 'android-L'
    buildToolsVersion '19.1.0'
    [...]
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:recyclerview-v7:+'
}

2
compileSdkVersion 'android-L' – INSTALL_FAILED_OLDER_SDKを提供
Oleksii Malovanyi

4
Eclipseでそれをどのように行うのですか?
Android開発者

2
このredditの投稿では、INSTALL_FAILED_OLDER_SDKエラーが発生した後、少し進んだ。
オーレン2014

7
サポートライブラリが最新バージョンのAndroidに依存しているのはなぜですか?これは、サポートライブラリを持つという目的全体に反します。
クリストファーペリー

2
古いバージョンのAndroidに対してコンパイルする場合は、これを実行できます。INSTALL_FAILED_OLDER_SDKエラーを取り除くために、あなたは交換する必要が<uses-sdk />:であなたのAndroidManifest.xmlファイルに宣言を<uses-sdk tools:node="replace" />
クリストファー・ペリー

9

これは私にとってはうまくいきます:

compile 'com.android.support:recyclerview-v7:21.0.0-rc1'

1
それは問題ではありません、あなたが書いたものは彼がすでに含んでいたものの単なる別のバージョンです
AlleyOOP

7

アプリのgradleでデザインの依存関係をコンパイルすることにより、RecyclerViewを追加できるようになりました:

dependencies {
...
compile 'com.android.support:design:24.0.0'
}

1
github.com/android/platform_frameworks_support/blob/master/…に反対を投じた方は、こちらでご覧いただけます
Lubos Mudrak

4

コンパイル済みSDKバージョン22.2.0を使用している場合は、以下のリサイクラービューの依存関係とcardViewをサポートするためのカードビューを追加します。

// ディレクトリlibにすべてのライブラリを含めるため
compile fileTree(include: ['*.jar'], dir: 'libs')
// サポートappcompatのため
compile 'com.android.support:appcompat-v7:22.2.0'
// // Googleサポートデザインを含めるため(2.3以降のマテリアルデザインテーマを実装できるようにします)
`compile 'com.android.support:design:22.2 0 '

リサイクラビューを追加するには、次の依存関係を使用します
compile 'com.android.support:recyclerview-v7:22.2.0'


その後、Build-> rebuild projectをクリックすると完了です。


3
compile 'com.android.support:recyclerview-v7:24.2.1'

これでうまくいきます。それを試してみてください。


2

私の前のステップは1つのステップが欠けているだけです。

変更後build.gradleと次の依存関係を追加:(アプリモジュール):

コンパイル 'com.android.support:cardview-v7:21.0.+'
コンパイル 'com.android.support:recyclerview-v7:21.0.+'

(必要に応じてカードビューを追加します)

次に、[ビルド]> [プロジェクトのクリーンアップ]に移動して、エラーを取り除く必要があります


ありがとう、私は何時間もかけてAndroidスタジオと格闘していました。CleanProjectのアイデアでうまくいきました。ありがとう。
Diljeet 2016年

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

上記のようにbuild.gradleファイルで依存関係を作成するだけで動作します。


2

私の場合compile 'com.android.support:recyclerview-v7:22.0.0'、依存関係としてgradleビルドに入れて修正しました

(Androidスタジオv。1.2.1.1およびすべてのSDKが更新されています。)

コードが非常に速く更新され、IDEがそれらを追跡できず、それらを手動で修正しなければならず、時間とリソースを浪費している場合、それは本当に迷惑です。

しかし、まあ、ついにそれは機能します。


2

に依存関係を含め、build.gradleプロジェクトをgradleファイルと同期する

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

    //include the revision no, i.e 25.1.1
    implementation 'com.android.support:recyclerview-v7:25.1.1'
}

予期しないビルドを回避するためにリビジョン(ここでは25.1.1)を含めます。ライブラリのリビジョンを確認します


2
implementation 'com.android.support:appcompat-v7:28.0.0'

implementation 'com.android.support:recyclerview-v7:28.0.0'

上記はbuild.gradleファイルで私のために働きます


1

古いデバイスでRecyclerViewを使用するために小さなハックを使用しました。私は自分のローカルm2リポジトリに移動し、RecyclerViewソースファイルを取得してプロジェクトに入れました。

ここでソースコードを見つけることができます:

<Android-SDK> \ extras \ android \ m2repository \ com \ android \ support \ recyclerview-v7 \ 21.0.0-rc1 \ recyclerview-v7-21.0.0-rc1-sources.jar


1

他の答えは私にとってうまくいきませんでした。私はこの行を追加する必要がありました:

「com.android.support:recyclerview-v7:21.0.0」をコンパイルします


1

-activity_main.xmlのデザインパーツに移動します -ドラッグドロップパレットでappCompactivityを選択します-appCompactivityでRecyclerViewを選択します - 選択時に ダイアログが表示されます[ OK ]をクリックします -プロジェクトapp:gradleは自動的に更新されます


1

私の依存関係;

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

    //RecyclerView dependency
    compile 'com.android.support:recyclerview-v7:25.1.0'

    // Instrumentation dependencies use androidTestCompile
    // (as opposed to testCompile for local unit tests run in the JVM)
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support:support-annotations:25.1.0'
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'com.android.support.test:rules:0.5'
}

コンパイル 'com.android.support:recyclerview-v7:25.1.0'のみを追加しました。重要なことはようであるRecycleView依存関係を追加することで、同じバージョンとしてAPPCOMPATを


1

Android Studioの更新バージョンまたは2018バージョンを使用している場合...

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

「構成 'コンパイル'は廃止され、 '実装'および 'api'に置き換えられました。2018年の終わりに削除されます。

これを使ってみてください

implementation 'com.android.support:recyclerview-v7:+'

1

私はこれが私のために働いているこれを使用しました。appcompat使用しているバージョンを検討する必要があります。私が使っているappcompat-v7:26.+のでこれは私のために働いています。

implementation 'com.android.support:recyclerview-v7:26.+'

0

RecyclerViewをプロジェクトにインポートする優れた方法は、RecyclerViewLibです。これは、RecyclerViewを引き出して安全かつ簡単に実装できるオープンソースライブラリです。著者のブログ投稿はこちらで読むことができます

次の行を、gradle依存関係としてコードに追加します。

dependencies {
    compile 'com.twotoasters.RecyclerViewLib:library:1.0.+@aar'
}

Gradleの依存関係を取り込む方法の詳細:

ボスニアはあなたがそのことを苛立たせていることについて正しい。Gradleは複雑に見えるかもしれませんが、非常に強力で柔軟性があります。すべてがGroovy言語で行われ、Gradleシステムの学習は別の言語の学習であり、Androidアプリを構築できます。それは今痛いですが、長期的にはあなたはそれを好きになるでしょう。

同じアプリのbuild.gradleを確認してください。https://github.com/twotoasters/RecyclerViewLib/blob/master/sample/build.gradle以下が実行される場所は、libをモジュール(別名、サンプルアプリ)に取り込む場所です

compile (project (':library')) {
    exclude group: 'com.android.support', module: 'support-v4' 
}

このファイルの場所に注意してください。これは最上位のbuild.gradleではありません

libソースは同じプロジェクト内にあるので、シンプルでこれを行うことができ':library'ます。excludeサンプルアプリのサポートv4を使用するLIBに指示します。それは必要ではありませんが、良い考えです。プロジェクトにlibのソースがない、またはしたくないので、インターネットをポイントする必要があります。モジュールの/アプリのbuild.gradleで、この行の最初から同じ行に配置します。または、サンプルの例に従っている場合は、excludesに置き換え':library'' com.twotoasters.RecyclerViewLib:library:1.0.+@aar '使用できます。


私はこのエラーを受け取りましたCould not find any version that matches com.twotoasters.RecyclerViewLib:library:1.0.+::-/
Besnik

build.gradleの適切な場所に配置していますか?モジュールbuild.gradleに入れていますか?
MinceMan 2014

「正しい」場所はどこですか?これらの行をbuild.gradleに追加し、android {}の外側/内側、buildscript {}の内側/外側に配置しましたが、何も機能しませんでした。私はGradleを初めて使用するので、非常に複雑すぎるようです...そして、「この行を置くだけ」のようなものを読んだとき、それは非常に迷惑です... :-(
Besnik

1
@Besnik私は、グレードビルドシステムに関する詳細情報で私の回答を更新しました。情報がお役に立てば幸いです。
MinceMan 2014

ありがとうございました!私はそれを翌日試してみます:-)
Besnik

0
import android.support.v7.widget.RecyclerView;

Android Studioでは、インポートは希望するほど直感的ではありません。このビットをインポートして、それがどのように役立つかを確認してください!


問題は、Javaインポートではなく、Gradle依存関係に関するものでした。
OneCricketeer 2016年

0

まだこの問題が発生している場合-変更する必要はありませんcompileSdkVersion。これは、サポートライブラリの目的全体を無効にするだけです。

代わりに、これらをgradle.buildファイルで使用します。

compile 'com.android.support:cardview-v7:+'
compile 'com.android.support:recyclerview-v7:+'
compile 'com.android.support:palette-v7:+'`

1
+表記を使用することはお勧めしません。少なくともメインバージョンを指定してください。
Dejan

0

これは私のために働く

インターネット許可を定義する

 <uses-permission android:name="android.permission.INTERNET" >

依存関係を追加

compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
    compile 'com.squareup.okhttp3:okhttp:3.4.1'
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile ('com.squareup.retrofit2:converter-simplexml:2.1.0'){
        exclude group: 'stax', module: 'stax-api'
        exclude group: 'stax', module: 'stax'
        exclude group: 'xpp3', module: 'xpp3'
    }

主な活動

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;

import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.simplexml.SimpleXmlConverterFactory;

public class MainActivity extends AppCompatActivity {
    private BreakfastMenu breakfastMenu;
    List<BreakfastMenu> list;
    TextView responseText;
    APIInterface apiInterface;
    String name;
    String price;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        responseText=(TextView)findViewById(R.id.reponseText);
        apiInterface = APIClient.getClient().create(APIInterface.class);


        /**
         GET List Resources
         **/
        Call<BreakfastMenu> call = apiInterface.getBreakfastMenu();
        call.enqueue(new Callback<BreakfastMenu>() {
            @Override
            public void onResponse(Call<BreakfastMenu> call, Response<BreakfastMenu> response) {
               Log.d("TAG", response.code() + "");

                String displayResponse = "";
                BreakfastMenu resource = response.body();
                System.out.println(displayResponse+"display response   ");

                for (Food food : resource.getFoodList())
                {
                    name=food.getName();
                    price=food.getPrice();
                    System.out.println(name+price+"=========================================");
                    displayResponse += food.getName() + " " + food.getPrice()+"\n"+"\n";
                    Toast.makeText(MainActivity.this,name+price,Toast.LENGTH_LONG).show();
                }
                responseText.setText(displayResponse);

            }

            @Override
            public void onFailure(Call<BreakfastMenu> call, Throwable t) {
                call.cancel();
            }
        });

    }
}

APIClient.javaクラスを作成する

import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.converter.simplexml.SimpleXmlConverterFactory;

class APIClient {

    private static Retrofit retrofit = null;

    static Retrofit getClient() {

        HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
        interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();


        retrofit = new Retrofit.Builder()
                .baseUrl("https://www.w3schools.com/")
                .addConverterFactory(SimpleXmlConverterFactory.create())
                .build();



        return retrofit;
    }

}

    enter code here

Make APIInterface.java

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;

interface APIInterface {

    @GET("xml/simple.xml")
    @Headers({"Accept: application/xml",
            "User-Agent: Retrofit-Sample-App"})
    Call<BreakfastMenu> getBreakfastMenu();
}

In BreakfastMenu.java

import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;

import java.util.List;

@Root(name = "breakfast_menu")
public class BreakfastMenu
{

    @ElementList(inline = true)
    private List<Food> foodList;

    public BreakfastMenu()
    {
    }

    public List<Food> getFoodList()
    {
        return foodList;
    }

    public void setFoodList(List<Food> foodList)
    {
        this.foodList = foodList;
    }
}

Food.javaを作成する

import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;

@Root(name = "food")
public class Food
{

    @Element(name = "name")
    private String name;

    @Element(name = "price")
    private String price;

    @Element(name = "description")
    private String description;

    @Element(name = "calories")
    private String calories;

    public Food()
    {
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getPrice()
    {
        return price;
    }

    public void setPrice(String price)
    {
        this.price = price;
    }

    public String getDescription()
    {
        return description;
    }

    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getCalories()
    {
        return calories;
    }

    public void setCalories(String calories)
    {
        this.calories = calories;
    }
}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

        <TextView
            android:id="@+id/reponseText"
            android:layout_width="match_parent"
            android:layout_height="600dp"
          />


</Linear Layout>

0

ただの更新:

'compile'は廃止されました。「実装」と「api」に置き換えられました。2018年末に削除されると思います。詳細については、http//d.android.com/r/tools/update-dependency-configurations.htmlを参照してください。

また、すべてのcom.android.supportライブラリは、まったく同じバージョン仕様を使用する必要があります。さらに、appcompat-v7やrecyclerview-v7などのサポートライブラリは、compileSdkVersionとは異なるバージョンを使用しないでください。

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