web-dev-qa-db-ger.com

So importieren Sie RecyclerView für Android L-Vorschau

Der Versuch, die neue RecyclerView aus der Support-Bibliothek zu verwenden. Ich habe das 20 Update für die Support-Bibliothek mit dem SDK-Manager heruntergeladen.

Ich habe die JAR-Datei zum libs-Ordner hinzugefügt - und zum Build-Pfad hinzugefügt - mit dem RecyclerView kein Glück.

Versuchte, auch die Abstufungsabhängigkeit nach Android Developer's API zu verwenden - nicht sicher, ob dies der richtige Ort ist, um nachzuschauen - diese Seite bezieht sich mehr auf AndroidTV:

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

Das Projekt kann nicht synchronisiert werden.

Irgendwelche Ideen?

86
micnoy

Herausgefunden.

Sie müssen die folgende Abstufungsabhängigkeit hinzufügen:

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

ein anderes Problem, das ich kompilierte, war die compileSdkVersion. Anscheinend müssen Sie es gegen Android-L kompilieren.

Ihre build.gradle-Datei sollte ungefähr so ​​aussehen:

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

Ich habe mit folgenden Zeilen erstellt und das funktioniert für mich.

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

Das vollständige Tutorial finden Sie unter hier

75
Gunaseelan

Das funktioniert für mich: 

compile 'com.Android.support:recyclerview-v7:21.0.0-rc1'
9
Andras K

RecyclerView kann jetzt hinzugefügt werden, indem die Entwurfsabhängigkeit in App Gradle kompiliert wird:

dependencies {
...
compile 'com.Android.support:design:24.0.0'
}
7
Bryon Nicoson

Wenn Sie SDK Version 22.2.0 kompiliert haben, fügen Sie für die Unterstützung von cardView die folgenden Abhängigkeiten für die Recycler-Ansicht und die Kartenansicht hinzu

// m die gesamte Bibliothek in das Verzeichnis lib aufzunehmen
compile fileTree(include: ['*.jar'], dir: 'libs')
// für Support AppCompat
compile 'com.Android.support:appcompat-v7:22.2.0'
// für die Einbindung von Google Support Design (ermöglicht die Implementierung von Material Design Theme ab 2.3 und höher
`compile 'com.Android.support:design:22.2.0'

verwenden Sie zum Hinzufügen der Recycler-Ansicht die folgende Abhängigkeit
compile 'com.Android.support:recyclerview-v7:22.2.0'


Danach klicken Sie auf Build-> rebuild project und Sie sind fertig.

4
yubaraj poudel
compile 'com.Android.support:recyclerview-v7:24.2.1'

Das funktioniert für mich ... __ probieren Sie es aus.

3
Dino Sunny

in meinem Fall habe ich es behoben, indem ich compile 'com.Android.support:recyclerview-v7:22.0.0' als Abhängigkeit in meinen Gradle-Build eingefügt habe

(mit Android Studio v. 1.2.1.1 und allen SDKs aktualisiert.)

Es ist wirklich ärgerlich, wenn Codes so schnell aktualisiert werden und die IDE sie nicht nachverfolgen kann, und Sie müssen sie manuell beheben und Zeit und Ressourcen verschwenden.

Aber endlich funktioniert es.

2

nimm die Abhängigkeit in das build.gradle und synchronisieren Sie das Projekt mit gradle Dateien

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'
}

Fügen Sie die Revision (hier 25.1.1) hinzu, um unvorhersehbare Builds zu vermeiden. Aktivieren Sie Bibliotheksrevisionen

2
Azzy

Bei den Schritten vor mir fehlt nur ein Schritt.

Nach dem Ändern von build.gradle (Module: app) und Hinzufügen der folgenden Abhängigkeiten:

'com.Android.support:cardview-v7:21.0.+' kompilieren
'com.Android.support:recyclerview-v7:21.0.+' kompilieren

(Fügen Sie ggf. cardview hinzu)

Sie müssen dann zu Build> Clean Project gehen, um Fehler zu beseitigen

2
Junior Hazel
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'
}

Machen Sie einfach Ihre Abhängigkeiten wie oben in build.gradle-Datei, die für mich gearbeitet haben.

2
yubaraj poudel

Ich habe diese verwendet, arbeitet für mich. Eine Sache muss berücksichtigt werden, welche Version von appcompat Sie verwenden. Ich benutze appcompat-v7:26.+, also funktioniert das für mich.

implementation 'com.Android.support:recyclerview-v7:26.+'
1
Vicky Pramanik
implementation 'com.Android.support:appcompat-v7:28.0.0'

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

Oben funktioniert für mich inbuild.gradlefile

1
Vaibhav Thakur

Ich habe einen kleinen Hack verwendet, um den RecyclerView auf älteren Geräten zu verwenden. Ich ging einfach in mein lokales m2-Repository und nahm die RecyclerView-Quelldateien auf und fügte sie in mein Projekt ein.

Den Quellcode finden Sie hier:

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

1
rekire

-Gehen Sie zu DESIGN in activity_main.xml - Wählen Sie appCompactivity - in appCompactivity. Wählen Sie RecyclerView - Bei Auswahl eines Dialogs erscheint ein Klick auf OK - Ihre Projekt-App: gradle wird automatisch aktualisiert

1
Vishal Singh

Andere Antworten haben bei mir nicht funktioniert. Ich musste diese Zeile hinzufügen:

"com.Android.support:recyclerview-v7:21.0.0" kompilieren

1
Chad Bingham

Meine Abhängigkeiten;

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'
}

Ich habe nur compile 'com.Android.support:recyclerview-v7:25.1.0' hinzugefügt. Wichtig ist das Hinzufügen der RecycleView-Abhängigkeit, die als gleiche Version als appcompat gilt.

1

Wenn Sie die aktualisierte oder 2018-Version für Android Studio verwenden ...

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

mit der folgenden Meldung wird ein Fehler angezeigt. "Die Konfiguration 'compile' ist veraltet und wurde durch 'Implementierung' und 'API' ersetzt.

Versuchen Sie es damit 

implementation 'com.Android.support:recyclerview-v7:+'
1
TwistenTiger

Das funktioniert für mich

Internet-Berechtigung definieren

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

Abhängigkeit hinzufügen

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'
    }

In der Hauptaktivität

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();
            }
        });

    }
}

Machen Sie die Klasse 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;
    }
}

Make 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;
    }
}

In 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
Sakshi Mehta

Wenn immer noch jemand dieses Problem hat - Sie müssen compileSdkVersion nicht ändern, ist dies der Zweck von Support-Bibliotheken. 

Verwenden Sie diese stattdessen in Ihrer gradle.build-Datei:

compile 'com.Android.support:cardview-v7:+'
compile 'com.Android.support:recyclerview-v7:+'
compile 'com.Android.support:palette-v7:+'`
0
andrejbroncek
import Android.support.v7.widget.RecyclerView;

In Android Studio ist das Importieren nicht so intuitiv, wie man hoffen würde. Versuchen Sie, dieses Bit zu importieren und sehen Sie, wie es hilft!

0
AlleyOOP

Eine gute Möglichkeit, die RecyclerView in Ihr Projekt zu importieren, ist die RecyclerViewLib . Dies ist eine Open-Source-Bibliothek, die RecyclerView für eine sichere und einfache Implementierung herausgezogen hat. Sie können den Blogbeitrag des Autors hier lesen.

Fügen Sie im Code die folgende Zeile als Abstufungsabhängigkeit hinzu:

dependencies {
    compile 'com.twotoasters.RecyclerViewLib:library:[email protected]'
}

Weitere Informationen zum Einfügen von Abstufungsabhängigkeiten:

Bosnien, Sie haben recht, dass das nervig ist. Gradle mag kompliziert erscheinen, ist aber extrem leistungsfähig und flexibel. Alles wird in der Sprache Groovy erledigt, und wenn Sie das Gradle-System lernen, lernen Sie eine andere Sprache, damit Sie Ihre Android-App erstellen können. Es tut jetzt weh, aber auf lange Sicht wirst du es lieben. 

Testen Sie das build.gradle für dieselbe App. https://github.com/twotoasters/RecyclerViewLib/blob/master/sample/build.gradle Wo dies der Fall ist, bringt es die lib in das Modul (auch als Beispiel-App bekannt) 

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

Achten Sie auf den Speicherort dieser Datei. Dies ist nicht die oberste Ebene von build.gradle

Da sich die lib-Quelle im selben Projekt befindet, kann sie dies mit dem einfachen ':library' tun. Die Variable exclude teilt der lib mit, dass sie die Unterstützung der Beispielanwendung v4 verwenden soll. Das ist nicht notwendig, aber eine gute Idee. Sie haben nicht die Quelle der Bibliothek in Ihrem Projekt und möchten diese nicht haben, deshalb müssen Sie dafür auf das Internet verweisen. Im build.gradle Ihres Moduls/app würden Sie diese Zeile am Anfang dieser Antwort an derselben Stelle platzieren. Wenn Sie dem Beispielbeispiel folgen, können Sie ':library' durch ' com.twotoasters.RecyclerViewLib:library:[email protected] ' ersetzen und die Ausschlüsse verwenden.

0
MinceMan

Nur ein Update:

'compile' ist jetzt veraltet; Es wurde durch "Implementierung" und "API" ersetzt. Es wird Ende 2018 entfernt, glaube ich. Weitere Informationen finden Sie unter: http://d.Android.com/r/tools/update-dependency-configurations.html

Alle com.Android.support-Bibliotheken müssen exakt dieselbe Versionsspezifikation verwenden. Unterstützungsbibliotheken wie appcompat-v7 und recyclerview-v7 sollten außerdem keine andere Version als compileSdkVersion verwenden.

0
Abdul