Попытка использовать новый RecyclerView из библиотеки поддержки. Я загрузил 20 обновлений для библиотеки поддержки с помощью диспетчера SDK.
Я добавил файл jar в папку libs - и добавил в путь сборки - не повезло с использованием RecyclerView.
Пытался использовать также зависимость gradle в соответствии с API разработчика Android - не уверен, что это подходящее место для поиска - эта страница больше связана с AndroidTV:
com.android.support:recyclerview-v7:20.0.+
Не удается синхронизировать проект с помощью градиента.
Любые идеи?
Догадаться.
Вам нужно будет добавить следующую зависимость 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:+' }
источник
<uses-sdk />
объявление в файле AndroidManifest.xml следующим текстом:<uses-sdk tools:node="replace" />
Это работает для меня:
compile 'com.android.support:recyclerview-v7:21.0.0-rc1'
источник
RecyclerView теперь можно добавить, скомпилировав зависимость дизайна в приложении gradle:
dependencies { ... compile 'com.android.support:design:24.0.0' }
источник
Если у вас есть скомпилированный SDK версии 22.2.0, добавьте ниже зависимость для представления recycler и дополнительно cardview для поддержки 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 '
После этого нажмите Build-> rebuild project, и все готово.
источник
compile 'com.android.support:recyclerview-v7:24.2.1'
У меня это работает. Попытайся.
источник
В шагах передо мной отсутствует всего один шаг.
После изменения build.gradle (Module: app) и добавления следующих зависимостей:
(При необходимости добавьте cardview)
Затем вы должны перейти в Build> Clean Project, чтобы избавиться от любых ошибок.
источник
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, сработали для меня.
источник
в моем случае я исправил это, поставив
compile 'com.android.support:recyclerview-v7:22.0.0'
в качестве зависимости в мою сборку gradle(с Android Studio v. 1.2.1.1 и всеми обновленными SDK.)
Это действительно раздражает, когда коды обновляются так быстро, и IDE не может их отслеживать, и вам приходится вручную исправлять их, тратя время и ресурсы.
Но что ж, наконец-то это работает.
источник
включить зависимость в
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), чтобы избежать непредсказуемых сборок, проверьте версии библиотеки
источник
implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:recyclerview-v7:28.0.0'
Выше работает у меня в
build.gradle
файлеисточник
Я использовал небольшой прием, чтобы использовать RecyclerView на старых устройствах. Я просто зашел в свой локальный репозиторий m2, взял исходные файлы RecyclerView и поместил их в свой проект.
Вы можете найти исходный код здесь:
источник
Другие ответы не помогли мне. Мне пришлось добавить эту строку:
источник
-Перейдите к части ДИЗАЙН в activity_main.xml -В палитре перетаскивания выберите appCompactivity -В appCompactivity выберите RecyclerView -При выборе появится диалоговое окно, нажмите OK -Ваше приложение проекта: gradle будет обновляться автоматически
источник
Мои зависимости;
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.
источник
Если вы используете обновленную версию или версию 2018 для Android Studio ...
compile 'com.android.support:recyclerview-v7:+'
выдаст сообщение об ошибке: «Конфигурация 'compile' устарела и была заменена на 'implementation' и 'api'. Она будет удалена в конце 2018 года.
Попробуйте использовать это
implementation 'com.android.support:recyclerview-v7:+'
источник
Я использовал этот, у меня работает. Следует учитывать одну вещь: какую
appcompat
версию вы используете. Я использую,appcompat-v7:26.+
так что это работает для меня.implementation 'com.android.support:recyclerview-v7:26.+'
источник
Отличный способ импортировать RecyclerView в ваш проект - это RecyclerViewLib . Это библиотека с открытым исходным кодом, которая вытащила RecyclerView, чтобы сделать ее безопасной и простой. Вы можете прочитать запись в блоге автора здесь .
Добавьте следующую строку в качестве зависимости Gradle в свой код:
dependencies { compile 'com.twotoasters.RecyclerViewLib:library:1.0.+@aar' }
Дополнительная информация о том, как ввести зависимости Gradle:
Босния, ты прав в том, что тебя это раздражает. Gradle может показаться сложным, но он чрезвычайно мощный и гибкий. Все делается на отличном языке, и изучение системы 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 находится в том же проекте, это можно сделать с помощью файла simple
':library'
. Библиотекаexclude
сообщает библиотеке использовать поддержку v4. В этом нет необходимости, но это хорошая идея. У вас нет или вы хотите иметь исходный код библиотеки в своем проекте, поэтому вам нужно указать для этого в Интернете. В build.gradle вашего модуля / приложения вы поместите эту строку из начала этого ответа в то же место. Или, если , следуя примеру образцов, можно заменить':library'
с' com.twotoasters.RecyclerViewLib:library:1.0.+@aar '
и использовать исключает.источник
Could not find any version that matches com.twotoasters.RecyclerViewLib:library:1.0.+
- /import android.support.v7.widget.RecyclerView;
В Android Studio импорт не такой интуитивно понятный, как хотелось бы. Попробуйте импортировать этот бит и посмотрите, как он поможет!
источник
Если у кого-то все еще есть эта проблема - вам не нужно ничего менять
compileSdkVersion
, это просто сводит на нет всю цель поддержки библиотек.Вместо этого используйте их в своем
gradle.build
файле:compile 'com.android.support:cardview-v7:+' compile 'com.android.support:recyclerview-v7:+' compile 'com.android.support:palette-v7:+'`
источник
Это работает для меня
Определить разрешение в Интернете
<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>
источник
Просто обновление:
'compile' теперь устарело; он был заменен на «реализация» и «api». Думаю, он будет удален в конце 2018 года. Для получения дополнительной информации см .: http://d.android.com/r/tools/update-dependency-configurations.html.
Также все библиотеки com.android.support должны использовать одну и ту же спецификацию версии; кроме того, вспомогательные библиотеки, такие как appcompat-v7 и recyclerview-v7, не должны использовать версию, отличную от compileSdkVersion.
источник