В чем разница между Rebuild \ Clean project \ sync. Android Studio?

Clean project — удаляет временные файлы предыдущего билда.
Rebuild — сбилдит проект полностью с нуля (аналогично Clean и потом Build).
Для пояснения — во время билда создаются всякие промежуточные файлы для каждой единицы компиляции. Если с момента предыдущего билда какая то единица не поменялась (под единицей можно условно иметь ввиду класс) — то будут использованы временные файлы с прошлого раза для ускорения.
How to Rebuild Android Studio Project?
I looked at this question, but under Build I only have Make Selected Modules , and Deploy Module to App Engine , neither which rebuilds the project. So have they moved it somewhere that I can’t find? Does anyone know where I can rebuild the project?
2 Answers 2
Go to the Build drop down menu in the menu bar. you can see the Rebuild Project under the Clean Project . Rebuild project cleans the project actually. If you cant find Rebuild Project you can simply use Clean Project .
There is a clean project option under build dropdown menu.enter image description here
-
Featured on Meta
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.9.4.43609
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Как пересобрать проект в андроид студио
Reddit and its partners use cookies and similar technologies to provide you with a better experience.
By accepting all cookies, you agree to our use of cookies to deliver and maintain our services and site, improve the quality of Reddit, personalize Reddit content and advertising, and measure the effectiveness of advertising.
By rejecting non-essential cookies, Reddit may still use certain cookies to ensure the proper functionality of our platform.
For more information, please see our Cookie Notice and our Privacy Policy .
Как пересобрать проект в android studio
Вчера я перенес проект на студию 3.0. После обновления до 3.0 у меня возникло много проблем. Я не ожидал, что это будет целый день, но результат был неплохим, и я успешно запустил проект. Перечислите ямы, на которые я наступил, надеюсь, они понадобятся мне позже Модернизированные друзья, которые сталкиваются с подобными проблемами, могут быть ссылкой;
1. Обновление установки
Используйте встроенный инструмент обновления напрямую
Шаги:> строка меню> Android Studio> Проверить наличие обновлений .. (при условии, что сеть должна быть абсолютно разблокирована, вы знаете)
Примечание. Этот метод обновления может обновляться только до последней версии.
Инкрементное обновление до указанной версии
Пожалуйста, обратитесь к статье:Инкрементное обновление Android Studio (Mac)
Три способа увидеть ваши потребности, я выбрал третий способ
После завершения обновления откройте исходный проект и через некоторое время выполните индексацию.
Если ваш проект может быть запущен, хорошо, поздравляем, следующий контент, вы можете проигнорировать, потому что ваш проект идеален, проблем нет;
Если в проекте есть проблема с конфигурацией, могут возникнуть следующие проблемы:
1. Всегда застрял в проекте обновления

Этот тип приглашения в обычном процессе сначала будет отображаться в этом приглашении, что означает обновление модуля компиляции текущего проекта. Я полагаю, что учащиеся, которые обновили версию AS ранее, видели это приглашение при первом запуске новой версии и нажимают кнопку непосредственно обновить Кнопка сработает. Если вы не хотите наступать на яму, нажмите кнопку «Не напоминать мне еще раз за этот проект». Это означает, что вы по-прежнему используете предыдущую версию плагина для запуска текущего проекта, и никаких последующих проблем не возникнет;
Нажмите кнопку обновления прямо здесь;
После нажатия кнопки, если ваша сеть не разблокирована, она продолжится

Причина этого в том, что
фактически сделал две вещи после нажатия кнопки
Изменено в узле зависимостей в файле build.gradle основного проекта
Поле distributionUrl в файле gradle> gradle-wrapper.properties в каталоге проекта изменилось
После того, как два файла изменены, AS загрузитhttps://services.gradle.org/distributions/gradle-4.1-all.zip Этот файл не нужно ничего делать, просто подождите, пока AS закончит его загрузку
Решение здесь:
Предварительное условие — сначала загрузить файл, адрес загрузки.https://services.gradle.org/distributions/gradle-4.1-all.zip。
Найдите путь к папке .gradle: user / (текущий каталог пользователя) /. Gradle, разархивируйте загруженный файл в этот каталог, закройте AS и снова откройте (pro-test);
2. Исключение вызвано изменением имени файла выходного apk
После того, как первая проблема была решена, появилась

Нажмите Открыть файл, чтобы найти это местоположение в файле build.gradle уровня приложения.
Это имя apk-файла, который я ранее сконфигурировал для управления выводом AS. Новая версия не может быть настроена таким образом. Его можно изменить на официальное руководство.
Эффект почти такой же, как и раньше, напрямую меняется.
3. Исключение, вызванное сторонним модулем APT, настроенным в предыдущем проекте.

Google наконец узнал, что это связано с плагином обработки APT, который поставляется с новой версией AS3.0, из-за стороннего плагина APT, который я предварительно настроил, все они конфликтуют
, затем удалите его для разрешения
шаги удаления
- В уровне build.gradle уровня проекта, который является узлом зависимостей в самом внешнем файле build.gradle, удалите
- Удалить в верхней части уровня приложения build.gradle
- В узле зависимостей build.gradle на уровне приложения замените все ссылки, начинающиеся с apt, как annotationProcessor. Например,
Если есть другие плагины apt, вы можете следовать этому методу. После того, как три вышеуказанных шага выполнены, синхронизируйте проект и решите проблему
4. Минимальная версия BuildTool является ненормальной

Это исключение очевидно. Минимальный подключаемый модуль BuildTools, поддерживаемый AS3.0, — это версия 26.0.2. Не спрашивайте меня, что такое BuildTools, я не знаю (как следует из названия, инструмент компиляции AS); версия BuildTools изменена на версию 26.0.2. ; Код синхронизации в порядке, если вы не загружаете версию BuildTools26.0.2 в свой SDK, AS автоматически предложит вам загрузить, после загрузки кода синхронизации, проблема может быть решена;
5. Версия проекта библиотеки BuildTool не является единой *

AS3.0 также вмешивался в конфигурацию build.gradle библиотечного проекта. Чиновник сказал, что он может увеличить скорость компиляции. Подумайте об этом, проекты библиотек используют разные версии BuildTool, которые определенно будут медленно компилироваться, поэтому после нажатия Открыть файл здесь найдите В файле build.gradle измените узел buildToolsVersion внутри на 26.0.2 для решения проблемы.
Предложение: Если в проекте много элементов библиотеки, рекомендуется настроить версию buildToolsVersion в файле gradle.properties, а затем все элементы библиотеки в проекте ссылаются на эту конфигурацию. Если вы ее измените, будет изменена конфигурация buildToolsVersion всего проекта.
6. Мультидекс версия ненормальная

Этот вопрос говорит о том, что AS3.0 не удалось проанализировать версию multidex1.0.2. Почему произошел сбой?
Поскольку теперь все собственные зависимости Google восстанавливаются на его собственный сервер CDN.Перед настройкой jenter () в узле репозитория в файле build.gradle уровня проекта вы можете получить большинство зависимостей (хотя это немного медленнее), Но теперь Google официально требует, чтобы мы настроили google () в узле репозиториев, роль состоит в том, чтобы получить наши собственные зависимости, а исходный jcenter () перемещать не нужно, а multidex — это зависимость Google, поэтому используйте только предыдущий jcenter (), который должен быть Не могу решить это больше.
настроен следующим образом:
Примечание. В файле build.gradle уровня проекта есть два узла репозиториев, оба из которых настроены с помощью google () и помещают google () вверху.
Синхронизировать проект.
7.AAPT2 исключение компиляции

Эта серия исключений была зарегистрирована во время компиляции. Я столкнулся с ней при первом импорте проекта. Когда я импортировал другие проекты во второй раз, я не столкнулся с ним. Напротив, проблема была вызвана высокой конфигурацией. Существует проблема с версией пакета поддержки. При настройке версии всех пакетов поддержки проекта на 25.2.0 проблем нет, но эта проблема возникнет, если версия настроена на 26.0.0 или 27.0.0 (pro-test). ;
Решение
- Используйте более низкую версию пакета поддержки и настройте версию всех пакетов поддержки проекта на 25.2.0 или другие более низкие версии.
- Чтобы отключить компиляцию AAPT2 в gradle.properties, нужно добавить конфигурацию android.enableAapt2 = false и перекомпилировать проблему для решения (рекомендуется), например
Синхронизируйте код и решите проблему.
8. Метод не может быть найден ненормальным или не найден тег в файле AndroidManifest.xml / style

Причина этого исключения заключается в том, что если вы обновляете версию пакета поддержки, версия compileSdkVersion не изменяется. Если ваш пакет поддержки изменяется на 26.0.0 или выше, вам нужно изменить все compileSdkVersion в проекте на 26 или над.
Измените код, синхронизируйте код и решите проблему.
9.Could not find com.android.tools.build:gradle:3.0.0.
Этот метод объясняется тем, что я использовал метод инкрементного обновления для обновления Android Studio, а обновленная версия находится вhttps://dl.google.com/android/studio/patches/updates.xml
Версия 3.0.0.8, показанная здесь, и я настроил ее в gradle на уровне проекта
Это связано с позиционированием, поэтому я изменил его на
10. Зависит от модификации конфигурации
Поскольку плагин 3.0 использует версию Gradle 4.0, необходимо сначала представить ее. В Gradle 3.4 была представлена новая конфигурация плагина библиотеки Java: она позволяет выпускать управляющую версию для компиляции и пути к классам во время выполнения (для межмодульных зависимостей).

1) Зеленый ящик: зависимости, которые могут использовать пользователи, такие как: зависимости библиотеки конфигурации приложения
2) Розовый квадрат: компонент в библиотеку: время компиляции или время выполнения
3) Синий: внутреннее использование компонента, обратите внимание, что здесь нет необходимости передавать, например, a зависит от b, b зависит от c, но a не может получить конфигурацию c
4) Белый: конфигурация интегрирована из плагина Java
Хорошо, я понимаю новую зависимость библиотеки плагинов Java от Gradle 3.4. Поскольку плагин Android 3,0 использует Gradle 4.0, они, естественно, будут представлены. Следующая таблица может кратко объяснить:

Наконец, в зависимостях в build.gradle
Компиляция изменена на api
для compileOnly
testCompile изменен на testImplementation;
До и после изменения показаны в следующем коде:
Перед изменением
Примечание. Устаревшие зависимости compile, обеспечить и apk теперь доступны, но будут удалены в следующей версии, поэтому Google дает нам некоторое время для их использования.
После внесения изменений компиляция и запуск пройдены. (Предполагается, что версия 3.0.0.8 должна написать три числа как 3.0.1)
Ну, наконец, AS3.0, наконец, можно использовать, и проект может работать нормально.
Наконец, я надеюсь, что это будет полезно всем.
Декомпиляция и отладка Android-приложений
В статье будет рассказано о том, как подключить отладчик к Android-приложению и пошагово пройти через вызываемые методы, используя информацию, полученную после декомпиляции приложения.
Автор: Eric Gruber
В статье будет рассказано о том, как подключить отладчик к Android-приложению и пошагово пройти через вызываемые методы, используя информацию, полученную после декомпиляции приложения. Хорошая новость в том, что для отладки не требуются привилегии суперпользователя. Описанные техники могут быть очень кстати во время пентестов мобильных приложений, поскольку мы можем «проникнуть» в код во время работы программы, получить и записать информацию, к которой обычно у нас нет доступа. Например, можно перехватить трафик перед шифрованием и на лету получить ключи, пароли и любую другую ценную информацию. Статья будет полезна пентестерам и разработчикам мобильных приложений, желающих получить более глубокие знания о возможных атаках на платформе Android.
Требования к тестовой среде:
- Операционная система: Windows / Mac OS X / Linux
- Java (рекомендуется версия 1.7)
- IDE (Eclipse, IntelliJ IDEA, Android Studio)
- Android SDK (https://developer.android.com/sdk/index.html?hl=i)
- APKTool (https://code.google.com/p/android-apktool/)/APK Studio (http://apkstudio.codeplex.com)
- Устройство / эмулятор на базе Android
- Dex2Jar (https://code.google.com/p/dex2jar/)
- JD-GUI (http://jd.benow.ca/)
В статье будет использоваться следующая конфигурация: Windows 8, Android Studio и IntelliJ IDEA. Устройство: Nexus 4 с Android версии 4.4.4. Рекомендую все утилиты добавить в переменную окружения PATH, чтобы облегчить и ускорить доступ к этим инструментам.
Android application package (APK), используемый в статье, можно скачать отсюда: com.netspi.egruber.test.apk.
Настройка устройства
Инструкция ниже поможет вам подготовить устройство для экспериментов.
Активация раздела Developer Options
Для начала на Android-устройстве должна быть разрешена отладка через USB (опция USB debugging), что позволит «общаться» с девайсом при помощи инструментов из набора Android SDK. Однако перед этим необходимо активировать раздел Developer options. На устройстве зайдите в раздел Settings > About Phone и кликните несколько раз на пункт Build Number, после чего должно появиться сообщение о том, что раздел Developer options активирован.


Рисунок 1: Для того чтобы активировать раздел Developer options, необходимо несколько раз кликнуть на Build number
Разрешение отладки через USB
Чтобы разрешить отладку через USB-порт, зайдите в раздел Settings > Developer options и отметьте флажок напротив USB debugging.

Рисунок 2: Включение опции USB debugging
Подключение устройства и запуск ADB
После подключение устройства к компьютеру через USB-порт, должно появиться сообщение «USB debugging connected on the device». Также следует проверить, можно ли подключиться к устройству при помощи приложения Android Debug Bridge (ADB), входящего в состав Android SDK (пакет Android SDK Platform-tools). В командной строке введите следующую команду:
Устройство должно отобразиться в списке.

Рисунок 3: Список подключенных устройств
Если устройство не отобразилось в списке, то наиболее вероятная причина в некорректно установленных драйверах (в Windows). В зависимости от устройства драйвер можно найти либо в Android SDK, либо на сайте производителя.
Проверка приложения на возможность отладки
Перед отладкой Android-приложений вначале необходимо проверить, есть ли такая возможность. Проверку можно выполнить несколькими способами.
Первый способ – запустить Android Device Monitor, входящий в состав Android SDK (в папке tools). В Windows файл называется monitor.bat. При открытии Android Device Monitor устройство отобразится в разделе Devices.

Рисунок 4: Приложение Android Device Monitor
Если какое-либо приложение на устройстве можно отлаживать, это приложение также отобразится в списке. Я создал тестовую программу, но список пуст, поскольку программу отлаживать нельзя.
Второй способ проверить приложение на возможность отладки – исследовать файл AndroidManifest.xml из пакета приложения (APK, Android application package). APK представляет собой zip-архив, содержащий всю информацию, необходимую для запуска приложения на Android-устройстве.
Всякий раз, когда приложения загружается из Google Play Store, также загружается и пакет приложения. Все загруженные APK-файлы обычно хранятся на устройстве в папке /data/app. Если у вас нет прав суперпользователя, вы не сможете получить список файлов из директории /data/app. Хотя, если вы знаете имя APK-файла, можете скопировать его при помощи утилиты adb. Чтобы узнать имя APK-файла, введите следующую команду:
Появится командная строка устройства. Затем введите следующую команду:
pm list packages -f
Отобразится список всех пакетов на устройстве.

Рисунок 5: Перечень пакетов на устройстве
Глядя на список, находим тестовое приложение.

Рисунок 6: Пакет созданного тестового приложения (выделено белым)
Теперь необходимо скопировать файл пакета. Открываем шелл и вводим следующую команду:
adb pull /data/app/[.apk file] [location]

Рисунок 7: Копируем APK-файл с устройства в систему
Теперь нужно открыть файл пакета и исследовать содержимое AndroidManifest.xml. К сожалению, мы не можем просто так распаковать архив, поскольку APK-файл закодирован в бинарном формате. Для раскодировки чаще всего используется утилита apktool, хотя я использую APK Studio, поскольку у этого приложения дружелюбный графический интерфейс. Далее в статье будет рассказываться об APK Studio.
В APK Studio кликните на маленькую зеленую иконку, задайте имя проекту и укажите путь к APK файлу. Затем укажите пусть для сохранения проекта.

Рисунок 8: Создание нового проекта в APK Studio
После открытия APK выберите файл AndroidManifest.xml и посмотрите параметры тега application. Если флаг android:debuggable отсутствует (или присутствует, но установлено значение false), значит, приложение отлаживать нельзя.

Рисунок 9: Содержимое файла AndroidManifest.xml
Модификация файла AndroidManifest.xml
При помощи утилиты apktool или APK Studio мы можем модифицировать файлы и упаковывать содержимое обратно в пакет. Сейчас мы изменим файл AndroidManifest.xml так, чтобы приложение можно было отлаживать. Добавляем внутрь тега application строчку android:debuggable="true".

Рисунок 10: Изменяем содержимое тега application
После добавления флага кликаем на иконку «молоток» и заново собираем пакет. Пересобранный пакет будет находиться в директории build/apk.

Рисунок 11: Повторная сборка пакета завершилась успешно
После пересборки пакет подписывается и его можно заново установить на устройстве (все Android-приложения должны быть подписаны). Большинство приложений не проверяет сертификат, при помощи которого происходит подпись. В противном случае необходимо изменить код, выполняющий эту проверку.
Теперь нужно установить пересобранный пакет. Вначале удаляем старое приложение при помощи следующей команды:
adb pm uninstall[package name]
Затем устанавливаем новый пакет:
adb install [.apk file]
Также можно удалить и установить пакет одной командой:
adb install -r [.apk file]

Рисунок 12: Установка пересобранного пакета
Проверьте, чтобы переустановленное приложение корректно запускалось на устройстве. Если все работает, переходим обратно в Android Device Monitor, где должно появиться тестовое приложение.

Рисунок 13: Теперь пересобранное приложение можно отлаживать
Настройка среды разработки (IDE)
Теперь к пересобранному приложению можно подцепить отладчик, но вначале нужно создать проект в среде разработки (в статье используется IntelliJ IDEA). Создаем новый проект. В поле Application name указываем произвольное имя. В поле Package name указываем имя, в точности совпадающее с иерархией папок пересобранного пакета.

Рисунок 14: Создание нового проекта в IntelliJ IDEA
Обычно имя APK-файла совпадает со структурой папок, хотя, если вы не уверены, в APK Studio проверьте иерархию директорий до папки, где находятся файлы приложений. В моем случае имя и структура папок полностью совпадают (com.netspi.egruber.test).

Рисунок 15: Иерархия директорий тестового приложения
Снимите флажок «Create Hello World Activity» и завершите создание проекта (все остальные параметры остаются по умолчанию). Новый проект должен выглядеть примерно так:

Рисунок 16: Иерархия папок и файлов нового проекта
После создания проекта нужно добавить исходный код из APK-файла для того, чтобы отладчик «знал» имена символов, методов, переменных и т. д. Хорошая новость в том, что Android-приложения можно декомпилировать практически без потери качества (исходный код будет совпадать с оригиналом). После декомпиляции исходный текст импортируется в среду разработки (IDE).
Получение исходных текстов из пакета приложения
Для начала необходимо преобразовать APK в jar-файл. Затем мы при помощи java-декомпилятора получим исходный текст приложения. Преобразование в jar будем делать при помощи утилиты dex2jar. У dex2jar есть файл d2j-dex2jar.bat, используемый для конвертирования APK в jar. Синтаксис команды довольно прост:
d2j-dex2jar.bat [.apk file]

Рисунок 17: Преобразование APK в jar
Затем открываем или перетаскиваем полученный файл в JD-GUI (это java-декомпилятор).

Рисунок 18: Структура jar-файла
Jar-файл должен отобразиться в виде иерархической структуры, внутри которой находятся java-файлы с читабельным исходным кодом. Заходим в File > Save All Sources, чтобы упаковать все исходные тексты в zip-архив.

Рисунок 19: Сохранение исходных текстов декомпилированного файла
После сохранения исходных текстов распаковываем архив в отдельную директорию.

Рисунок 20: Распакованный архив
Теперь нужно импортировать обе директории в созданный ранее проект в IDE. В IntelliJ заходим в папку src и копируем туда содержимое распакованного архива (две директории).

Рисунок 21: Обе папки скопированы в директорию src
Возвращаясь в Intellij, видим обновленный проект.

Рисунок 22: В проекте появились исходные тексты
Если мы кликнем на какой-нибудь элемент из списка, то увидим исходный текст. Как видно на скриншоте ниже (исходный текст класса LoginActivity), исходный код обфусцирован при помощи ProGuard.

Рисунок 23: Обфусцированный исходный текст класса LoginActivity
Подключение отладчика
Теперь, когда в проекте появились исходные тексты, мы можем начать устанавливать точки останова на методах и переменных. По достижению точек останова приложение будет останавливаться. В качестве примера я установил точку останова на методе (прямо в обфусцированном коде), отвечающим за обработку информации, введенной в текстовом поле.

Рисунок 24: Поставлена точка останова на обфусцированный метод
Как только появилась точка останова, подключаем отладчик к процессу на устройстве, кликнув на иконку с экраном в правом верхнем углу (на вашей IDE иконка может отличаться).

Рисунок 25: Подключаем отладчик к процессу
Далее вам будет предложено выбрать процесс, к которому нужно подключиться. Будут отображены только процессы с флагом android:debuggable="true".

Рисунок 26: Перечень процессов для подключения отладчика
После выбора процесса отладчик подсоединится к устройству.

Рисунок 27: Отладчик подключен к процессу, запущенному на устройстве
В текстовое поле я буду вводить число 42 (если помните, на соответствующем методе стоит точка останова).

Рисунок 28: В текстовое поле вводим число 42
После нажатия на кнопку «Enter Code» выполнение приложения прервется на точке останова, поскольку отладчик «осведомлен», какой метод вызывается на устройстве. Скомпилированное Android-приложение содержит отладочную информацию (например, имена переменных), доступную любому отладчику, совместимому с Java Debug Wire Protocol (JDWP). Если в приложении разрешена отладка, отладчик, совместимый с JDWP (в эту категорию попадает большинство отладчиков идущих в составе сред разработки для Java), сможет подсоединиться к виртуальной машине Android-приложения, а затем считывать и выполнять отладочные команды.

Рисунок 29: Сработала точка останова
На скриншоте ниже видно число, которое ранее мы ввели в текстовом поле.

Рисунок 30: Перечень переменных текущего экземпляра класса
Мы можем не только считывать данные в приложении, но и вставлять свои собственные. Это может быть полезно, если мы, например, захотим прервать поток выполнения кода и обойти некоторые участки алгоритма. При помощи отладчика мы можем лучше понять логику работы приложения и проанализировать то, что недоступно обычному пользователю. Например, может оказаться очень полезным просмотр используемых функций шифрования и динамические ключи. Кроме того, иногда при отладке полезно знать, как функции взаимодействуют с файловой системой или базой данных, чтобы понять какая информация сохраняется приложением. Подобные манипуляции доступны на любом Android-устройстве без привилегий суперпользователя.
Android Studio нужно пересобирать проект перед каждым запуском
Недавно в студии Android появилась ошибка. Ошибка Java не может найти Symbol или каждый запуск. я должен идти, чтобы построить и перестроить проект перед каждым прогоном. Есть ли способ исправить это? я не знаю, была ли проблема с проектом или проблема с последним обновлением студии Android. кто сталкивается с той же проблемой? любой способ его исправить?
5 ответов
Это известный issue. Возможно, вам стоит попробовать:
Одинаковая проблема здесь, чтобы избежать пересоздания КАЖДОГО ВРЕМЕНИ, я собираюсь выполнить настройки моего модуля → Зависимости и вверх или вниз по одному из элементов моей библиотеки → Применить → Хорошо → Произвести регенерацию R.java.
Вы также можете попытаться снять флажок «Использовать внешнюю сборку» в настройках компилятора:
Файл → Настройки (Ctrl + Alt + S) → Компилятор → Снимите флажок «Использовать внешнюю сборку»
Пожалуйста, проверьте конфигурацию запуска/отладки. Убедитесь, что вы включили ‘Gradle -aware Make 
How to Rebuild Android Studio Project?
I looked at this question, but under Build I only have Make Selected Modules , and Deploy Module to App Engine , neither which rebuilds the project. So have they moved it somewhere that I can’t find? Does anyone know where I can rebuild the project?
2 Answers 2
Go to the Build drop down menu in the menu bar. you can see the Rebuild Project under the Clean Project . Rebuild project cleans the project actually. If you cant find Rebuild Project you can simply use Clean Project .
There is a clean project option under build dropdown menu.enter image description here
-
The Overflow Blog
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.3.17.43323
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.