Как импортировать RecyclerView для Android L-preview
попытка использовать новый RecyclerView из библиотеки поддержки. Я загрузил обновление 20 для библиотеки поддержки с помощью диспетчера SDK.
Я добавил файл jar в папку libs - и добавил, чтобы построить путь - не повезло с помощью RecyclerView.
пытался использовать также зависимость gradle в соответствии с API разработчика Android - Не уверен, что это правильное место для поиска - эта страница больше связана с AndroidTV :
com.android.support:recyclerview-v7:20.0.+
не удается выполнить gradle синхронизацию проекта.
какие идеи?
21 ответов:
разобрался.
вам нужно будет добавить следующую зависимость gradle:
compile 'com.android.support:recyclerview-v7:+'еще одна проблема, которую я собирал, была
compileSdkVersion. По-видимому, вам придется скомпилировать его противandroid-Lваши построения.файл 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:+' }
Я создал, используя следующие строки, и это работает для меня.
compile 'com.android.support:appcompat-v7:27.1.1' compile 'com.android.support:recyclerview-v7:27.1.1'полный учебник см. В разделе здесь
RecyclerView теперь можно добавить путем компиляции зависимости дизайна в приложении gradle:
dependencies { ... compile 'com.android.support:design:24.0.0' }
Если у вас есть скомпилированные версии SDK 22.2.0 затем добавить ниже зависимостей для просмотра переработчик и cardview дополнительной поддержки cardView
//для включения всех библиотек в каталог lib
compile fileTree(include: ['*.jar'], dir: 'libs')
// для поддержки appcompatcompile 'com.android.support:appcompat-v7:22.2.0'
// для включения дизайна поддержки google (это позволяет реализовать тему material design от 2.3 и выше)
`составлять - com.андроид.поддержка:дизайн:22.2.0'для добавления вида recycler используйте следующую зависимость
compile 'com.android.support:recyclerview-v7:22.2.0'
После этого нажмите на Build - >rebuild project и все готово.
шаги передо мной просто не хватает одного шага.
после изменения построить.gradle (модуль: приложение) и добавление следующих зависимостей:
compile ' com.андроид.поддержка: cardview-v7: 21.0.+ '
компиляции в COM.андроид.поддержка: recyclerview-v7: 21.0.+ '(при необходимости добавьте 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' }просто сделайте ваши зависимости, как показано выше в сборке.файл gradle, работал на меня.
в моем случае я исправил это, поставив
compile 'com.android.support:recyclerview-v7:22.0.0'как зависимость в моем gradle build(С Android studio V. 1.2.1.1 и все sdk обновлены.)
это действительно раздражает, когда коды обновляются так быстро, и IDE не может отслеживать их, и вы должны вручную исправить их, тратя время и ресурсы.
но хорошо, наконец-то он работает.
включить зависимость в сборку.gradle, и синхронизировать проект с файлами gradle
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:25.1.0' //include the revision no, i.e 25.1.1 compile 'com.android.support:recyclerview-v7:25.1.1' }включите ревизию (здесь ее 25.1.1), чтобы избежать непредсказуемых сборок, проверьте изменения библиотека
Я использовал небольшой хак, чтобы использовать RecyclerView на старых устройствах. Я просто зашел в свой локальный репозиторий m2 и взял исходные файлы RecyclerView и поместил их в свой проект.
вы можете найти исходный код здесь:
\extras\android\m2repository\com\android\support\recyclerview-v7\21.0.0-rc1\recyclerview-v7-21.0.0-rc1-sources.банку
другие ответы не работает для меня. Я должен был добавить эту строку:
compile ' com.андроид.поддержка: recyclerview-v7: 21.0.0'
-перейти к конструкция входит в activity_main.xml -В поддоне перетаскивания выберите appCompactivity - В appCompactivity выберите RecyclerView -При выборе появится диалоговое окно нажмите ОК - Ваш проект приложение: gradle будет автоматически обновляться
Я использовал этот один для меня. Одну вещь нужно учесть, что какой совместимости приложений версии, которую вы используете. Я использую appcompat-v7: 26.+ так что это работает для меня.
compile ' com.андроид.поддержка: recyclerview-v7: 26.+ '
мои зависимостей;
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' }Я добавил только compile ' com.андроид.поддержка: recyclerview-v7: 25.1.0'. Важно добавить RecycleView зависимость, которая является как тоже вариант как appcompat
отличный способ импортировать RecyclerView в ваш проект-это RecyclerViewLib. Это библиотека с открытым исходным кодом, которая вытащила RecyclerView, чтобы сделать его безопасным и простым в реализации. Вы можете прочитать сообщение в блоге автора здесь.
добавить следующую строку в качестве зависимости gradle в коде:
dependencies { compile 'com.twotoasters.RecyclerViewLib:library:1.0.+@aar' }дополнительная информация о том, как ввести зависимости gradle:
Босния вы правы насчет того, что это раздражает. Gradle в мае показаться сложным, но это чрезвычайно мощный и гибкий. Все делается на языке groovy, и изучение системы gradle изучает другой язык, чтобы вы могли создать свое приложение для Android. Сейчас это больно, но в конечном счете тебе понравится.
проверить сборку.gradle для того же приложения. https://github.com/twotoasters/RecyclerViewLib/blob/master/sample/build.gradle где он делает следующее, где он приносит lib в модуль (он же образец приложение)
compile (project (':library')) { exclude group: 'com.android.support', module: 'support-v4' }обратите внимание на расположение этого файла. Это не сборка верхнего уровня.gradle
поскольку источник lib находится в том же проекте, он может сделать это с помощью простого
':library'. Элементexcludeговорит lib использовать поддержку V4 образца приложения. Это не обязательно, но это хорошая идея. У вас нет или вы не хотите иметь источник lib в своем проекте, поэтому вам нужно указать на интернет для него. В сборке вашего модуля / приложения.Gradle в, вы должны положить, что линия с начала этого ответа в том же месте. Или, если следовать примеру samples, вы можете заменить':library'С' com.twotoasters.RecyclerViewLib:library:1.0.+@aar 'и использовать исключает.
import android.support.v7.widget.RecyclerView;в Android Studio импорт не так интуитивно понятен, как можно было бы надеяться. Попробуйте импортировать этот бит и посмотреть, как это помогает!
Если у кого - то еще есть эта проблема-вам не нужно менять
compileSdkVersion, это просто ищет поддержки библиотек.вместо этого используйте их в своем
gradle.buildfile: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; } }Сделать Еду.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' теперь устарел; он был заменен на 'implementation' и 'api'. Он будет удален в конце 2018 года, я считаю. Для получения дополнительной информации см.: http://d.android.com/r/tools/update-dependency-configurations.html
также все com.андроид.библиотеки поддержки должны использовать точно такую же спецификацию версии; кроме того, библиотеки поддержки, такие как appcompat-v7 и recyclerview-v7 не должны использовать другую версию, чем the compileSdkVersion.
Если вы используете обновленную или 2018 версию для Android Studio...
compile 'com.android.support:recyclerview-v7:+'даст вам сообщение об ошибке со следующим сообщением "Конфигурации 'компиляции' является устаревшим и был заменен реализации и АПИ. Он будет снят в конце 2018 года."
попробуйте использовать этот
implementation 'com.android.support:recyclerview-v7:+'
Comments