Android L-प्रीव्यू के लिए RecyclerView कैसे आयात करें


90

समर्थन लाइब्रेरी से नए RecyclerView का उपयोग करने की कोशिश कर रहा है। मैंने SDK प्रबंधक का उपयोग करके समर्थन लाइब्रेरी के लिए 20 अपडेट डाउनलोड किया।

मैंने जार फ़ाइल को libs फ़ोल्डर में जोड़ा है - और पथ बनाने के लिए जोड़ा - RecyclerView का उपयोग करके कोई भाग्य नहीं।

एंड्रॉइड डेवलपर के एपीआई के अनुसार ग्रेडेल निर्भरता का उपयोग करने की कोशिश की - यह सुनिश्चित करने के लिए कि क्या यह देखने के लिए सही जगह है - यह पृष्ठ AndroidTV से अधिक संबंधित है:

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

प्रोजेक्ट को सिंक नहीं कर सकता।

कोई विचार?

जवाबों:


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: प्रक्रिया 'कमांड' / usr / lib / jvm / java-j-7-openjdk-amd64 / bin / java '' नॉन के साथ समाप्त -अक्सर बाहर निकलने का मूल्य 2। मुझे यह त्रुटि तब आती है जब मैं अपने प्रोजेक्ट में 2 निर्भरता जोड़ने पर प्रोजेक्ट चलाता हूं। कृपया, इसे किसी एक को ठीक करें ??
अजय भयानी

मेरे ऐप के gradle.build का संकलन 'com.android.support:appcompat-v7:23.2.1' पहले से ही है। इसलिए मैंने संकलन 'com.android.support:recyclerview-v7:23.2.1' को जोड़ने की कोशिश की - Appcompat के साथ एक ही संस्करण, लेकिन ग्रेडिंग सिंक विफल रहा था, 'com'android.support की तरह "+" को बदलने की कोशिश की: recyclerview-v7: 23.2। + ', भी विफल :(
Andiana

164

पता लगा लिया।

आपको निम्न श्रेणी निर्भरता जोड़ना होगा:

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
आप इसे ग्रहण के साथ कैसे करेंगे?
एंड्रॉयड डेवलपर

2
यह लाल पोस्ट मुझे INSTALL_FAILED_OLDER_SDK त्रुटि मिलने के बाद थोड़ा और मिला।
ओरेन

7
एक समर्थन पुस्तकालय Android के नवीनतम संस्करण पर निर्भर क्यों होगा? यह एक समर्थन पुस्तकालय होने के पूरे उद्देश्य को पराजित करता है।
क्रिस्टोफर पेरी

2
यदि आप एंड्रॉइड के पुराने संस्करण के खिलाफ संकलन करना चाहते हैं तो आप कर सकते हैं। 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
यह मुद्दा नहीं है, जो आपने लिखा है वह केवल एक और संस्करण है जो उसने पहले ही शामिल कर लिया है
एलेओओप

7

ऐप की श्रेणी में डिज़ाइन निर्भरता को संकलित करके RecyclerView को अब जोड़ा जा सकता है:

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

1
उन लोगों के लिए जो github.com/android/platform_frameworks_support/blob/master/… को डाउनवोट करते हैं, यहां आप इसे देख सकते हैं
लबोस मुद्रा

4

यदि आपने एसडीके संस्करण 22.2.0 संकलित किया है, तो पुनर्नवीनीकरण देखने के लिए निर्भरता जोड़ें और कार्ड व्यू के समर्थन के लिए कार्डव्यू अतिरिक्त

// निर्देशिका लिबरी में सभी लिबररी को शामिल करने के लिए
compile fileTree(include: ['*.jar'], dir: 'libs')
लिए // // एप्कोम्पैट के लिए
compile 'com.android.support:appcompat-v7:22.2.0'
// गूगल सपोर्ट डिजाइन को शामिल करने के लिए (यह 2.3 और अधिक से सामग्री डिजाइन विषय को लागू करना संभव बनाता है)
`संकलन 'com.android.support:design:22.2। 0 '

निर्भरता के बाद पुनर्नवीनीकरण दृश्य उपयोग को जोड़ने के लिए
compile 'com.android.support:recyclerview-v7:22.2.0'


उसके बाद Build-> पुनर्निर्माण परियोजना पर क्लिक करें और आप कर रहे हैं।



2

मुझसे पहले कदम सिर्फ एक कदम याद कर रहे हैं।

बिल्ड.ग्रेडल (मॉड्यूल: ऐप) को बदलने और निम्नलिखित निर्भरता जोड़ने के बाद:

संकलन 'com.android.support:cardview-v7:21.0.+'
संकलन 'com.android.support:recyclerview-v7:21.0.+'

(यदि आवश्यक हो तो कार्डव्यू जोड़ें)

फिर आपको किसी भी त्रुटि से छुटकारा पाने के लिए बिल्ड> क्लीन प्रोजेक्ट पर जाना होगा


धन्यवाद आदमी, मैं कई घंटों से एंड्रॉइड स्टूडियो के साथ संघर्ष कर रहा था, आपके स्वच्छ प्रोजेक्ट विचार ने एक बार फिर धन्यवाद किया।
दिलजीत

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'अपने ग्रेडेल बिल्ड में एक निर्भरता के रूप में रखकर तय किया

(एंड्रॉइड स्टूडियो वी। 1.2.1.1 के साथ और सभी एसडीके अपडेटेड हैं।)

जब कोड इतनी तेजी से अपडेट किए जाते हैं तो यह वास्तव में कष्टप्रद होता है और आईडीई उन पर नज़र नहीं रख सकता है, और आपको समय और संसाधनों को बर्बाद करते हुए, उन्हें मैन्युअल रूप से ठीक करना होगा।

लेकिन ठीक है, अंत में यह काम करता है।


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> \ एक्स्ट्रा कलाकार \ एंड्रॉयड \ m2repository \ कॉम \ एंड्रॉयड \ समर्थन \ 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 -ओं चयन एक संवाद प्रकट होगा क्लिक करें ठीक -आपका परियोजना एप्लिकेशन: 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

यदि आप एंड्रॉइड स्टूडियो के लिए अपडेटेड या 2018 संस्करण का उपयोग कर रहे हैं ...

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

आपको निम्न संदेश के साथ एक त्रुटि देगा "कॉन्फ़िगरेशन 'संकलन' अप्रचलित है और इसे 'कार्यान्वयन' और 'एपीआई' से बदल दिया गया है। इसे 2018 के अंत में हटा दिया जाएगा।"

यह प्रयोग करके देखें

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

1

मैंने इसका इस्तेमाल किया है जो मेरे लिए काम कर रहा है। एक बात पर विचार करने की आवश्यकता है कि appcompatआप किस संस्करण का उपयोग कर रहे हैं। मैं उपयोग कर रहा हूं appcompat-v7:26.+इसलिए यह मेरे लिए काम कर रहा है।

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

0

अपनी परियोजना में RecyclerView आयात करने का एक शानदार तरीका RecyclerViewLib है । यह एक ओपन सोर्स लाइब्रेरी है जिसने इसे सुरक्षित और आसान लागू करने के लिए RecyclerView को निकाला। आप लेखक की ब्लॉग पोस्ट यहाँ पढ़ सकते हैं

अपने कोड में एक निर्भरता के रूप में निम्न पंक्ति जोड़ें:

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

कैसे निर्भरता में लाने के लिए अधिक जानकारी:

बोस्निया तुम उस बारे में सही हो कि कष्टप्रद हो। ग्रेडल जटिल लग सकता है लेकिन यह बेहद शक्तिशाली और लचीला है। सबकुछ भाषा में किया गया है अब दर्द होता है, लेकिन लंबे समय में आप इसे पसंद करेंगे।

उसी ऐप के लिए build.gradle देखें। https://github.com/twotoasters/RecyclerViewLib/blob/master/sample/build.gradle यह निम्नलिखित करता है जहां यह मॉड्यूल में काम लाता है (नमूना एप्लिकेशन को उर्फ)

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

इस फ़ाइल के स्थान पर ध्यान दें। यह शीर्ष स्तर का बिल्ड.ग्रेड नहीं है

क्योंकि लिबास स्रोत उसी परियोजना में है जो इसे सरल के साथ करने में सक्षम है ':library'excludeलिब नमूना एप्लिकेशन के समर्थन v4 उपयोग करने के लिए कहता है। यह आवश्यक नहीं है लेकिन एक अच्छा विचार है। आपके पास अपने प्रोजेक्ट में लिबर का स्रोत नहीं है या नहीं है, इसलिए आपको इसके लिए इंटरनेट की ओर इशारा करना होगा। आपके मॉड्यूल / ऐप के बिल्ड.ग्रेड में आप उसी स्थान पर इस उत्तर की शुरुआत से उस लाइन को डाल देंगे। या, यदि नमूने के उदाहरण का अनुसरण करते हैं, तो आप बहिष्कृत के ':library'साथ प्रतिस्थापित ' com.twotoasters.RecyclerViewLib:library:1.0.+@aar 'और उपयोग कर सकते हैं ।


मुझे यह त्रुटि मिली Could not find any version that matches com.twotoasters.RecyclerViewLib:library:1.0.+: - /
बेसिकन

क्या आप इसे अपने build.gradle में सही जगह पर रख रहे हैं? क्या आप इसे अपने मॉड्यूल build.gradle में डाल रहे हैं?
मिन्समैन

"सही" जगह कहाँ है? मैंने इन पंक्तियों को अपने build.gradle में जोड़ दिया, इसे android के बाहर / अंदर {} से बाहर रखें, अंदर से / बाहर builddscript {} लेकिन मेरे लिए कुछ भी काम नहीं किया। मैं वर्गीकृत करने के लिए नया हूँ और यह बहुत अधिक जटिल लगता है ... और जब मैंने कुछ पढ़ा जैसे "बस इस लाइन को डाल दिया ..." इसकी बहुत कष्टप्रद ... :-(
बेसिकन

1
@ बेसनिक I ने ग्रेड बिल्ड सिस्टम के बारे में अधिक जानकारी के साथ अपना जवाब अपडेट किया। मुझे उम्मीद है कि जानकारी उपयोगी है।
मिंसमैन

धन्यवाद! मैं इसे अगले दिनों में
आजमाऊंगा

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

एंड्रॉइड स्टूडियो में, आयात करना उतना सहज नहीं है जितना कि कोई उम्मीद करेगा। इस बिट आयात करने का प्रयास करें और देखें कि यह कैसे मदद करता है!


प्रश्न ग्रेडल निर्भरता के बारे में था, न कि जावा आयात पर।
OneCricketeer

0

अगर किसी के पास अभी भी यह समस्या है - आपको बदलना नहीं है compileSdkVersion, यह सिर्फ समर्थन पुस्तकालयों के पूरे उद्देश्य को हरा देता है।

इसके बजाय, इन्हें अपनी gradle.buildफ़ाइल में उपयोग करें :

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

1
यह + संकेतन का उपयोग करने के लिए अनुशंसित नहीं है, कम से कम मुख्य संस्करण निर्दिष्ट करें।
देजन

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

खाना बनाओ। जजवा

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

बस एक अद्यतन:

'संकलन' अब अप्रचलित है; इसे 'कार्यान्वयन' और 'एपीआई' से बदल दिया गया है। मुझे विश्वास है कि 2018 के अंत में इसे हटा दिया जाएगा। अधिक जानकारी के लिए देखें: http://d.android.com/r/tools/update-d dependency-configurations.html

इसके अलावा सभी com.android.support पुस्तकालयों को सटीक एक ही संस्करण विनिर्देश का उपयोग करना चाहिए; इसके अलावा, अपकमिंग लाइब्रेरी जैसे एपकॉम-वी 7 और रिसाइकलव्यू-वी 7 को लाइब्रेरियों का इस्तेमाल नहीं करना चाहिए, जो कंपाइलसडक वर्जन से अलग वर्जन का इस्तेमाल नहीं करते।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.