Android Studio добавляет проблемы @ androidx.annotation и @ android.support.annotation - PullRequest
0 голосов
/ 25 сентября 2018

Я обновил Android Studio до версии 3.2.0.

Когда я принимаю любое изменение из списка предложений или alt + введите .

  • Проблема в том, что @androidx.annotation автоматически создан.
  • Таким образом, метод предложений имеет две аннотации @androidx.annotation.Nullable и android.support.annotation.Nullable.
  • Я не хочу вручную удалять это нежелательное предложение,так что я могу сделать, чтобы только android.support.annotation?
  • Также androidx.annotation пакет не был добавлен в мое приложение.и я не хочу добавлять androidx.annotation .

См. пример.

import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;

public class LoginActivity extends AppCompatActivity {
    @Override
    public void onCreate(@androidx.annotation.Nullable @Nullable Bundle savedInstanceState, @androidx.annotation.Nullable @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
    }
}

Есть ли какая-то настройка IDE для удаления автогенерации androidx.annotation?

Обновление

Я мог бы избавиться от этой проблемы с миграцией на androidx ( из официального документа ), но я не могу перенести все проектыдо androidx в настоящее время.Так что нужно решение.

Ответы [ 6 ]

0 голосов
/ 10 июня 2019

Просто добавьте annotationProcessor 'androidx.annotation:annotation:1.1.0' в качестве зависимости в ваш файл build.gradle(Module: app).

0 голосов
/ 26 февраля 2019

Используя Android Studio 3.3.1, я смог воспроизвести проблему.Мой проект только что был создан, без зависимости от AndroidX.Когда я создал первый фрагмент и переопределил onCreateView(), Android Studio автоматически добавила в метод 2 аннотации @androidx.annotation.Nullable и @Nullable (подсказка не указана с возможным выбором импорта).Единственный автоматически добавленный импорт аннотаций был import android.support.annotation.Nullable;

Если вы не хотите мигрировать на AndroidX , вот исправление, которое сработало для меня:

  • Вручную удалите все аннотации @androidx.annotation.Nullable, оставив только оригинальные аннотации @Nullable.

  • Do File > Invalidate Caches / Restart

Когда в приложении будет создан новый фрагмент, будет добавлена ​​только исходная аннотация библиотеки поддержки @Nullable.

0 голосов
/ 11 декабря 2018

AndroidX - это новые библиотеки расширений для поддержки обратной совместимости.В будущем новая функция обратной совместимости будет рассмотрена в AnddroidX.Как указано в этом блоге https://android -developers.googleblog.com / 2018/05 / hello-world-androidx.html

Стабильная версия 28.0.0 будетокончательный выпуск функции упакован как> android.support.Все последующие выпуски функций будут доступны только как> артефакты в пакете androidx.

https://developer.android.com/topic/libraries/support-library/revisions

Редакция 28.0.0 Производство (21 сентября 2018 г.)

Это стабильный выпуск библиотеки поддержки 28.0.0 и подходит для использования> в производстве.Это будет последний выпуск функции в пакете> android.support, и разработчикам рекомендуется перейти на> AndroidX.

Перемещение вашего приложения из android.support в зависимости от пакета androidx

Ссылка на эту ссылку, https://developer.android.com/jetpack/androidx/migrate

Если вы зависите от библиотеки, которая ссылается на старую библиотеку поддержки, Android Studio обновит эту библиотеку, чтобы она ссылалась на androidx, а не путем преобразования зависимостей.Преобразование зависимостей автоматически применяется плагином Android Gradle 3.2.0-alpha14, который переписывает байт-код и ресурсы зависимостей JAR и AAR (и транзитивных зависимостей) для ссылки на новые классы и артефакты, упакованные в androidx.Мы также предоставим автономный инструмент перевода в виде JAR.

Итак, на Шаг 1 (перевод зависимостей): В вашем файле gradle.properties установите android.useAndroidX установите значение true, а android.enableJetifier установите значение true.

android.useAndroidX=true
android.enableJetifier=true

в Шаг 2 (рефакторинг источника): В Android Studio 3.2 и выше выможно быстро перенести существующий проект для использования AndroidX, выбрав Refactor> Migrate to AndroidX в строке меню.

Refactor to Androidx from menu

0 голосов
/ 08 октября 2018

Как указано в примечании к выпуску библиотеки поддержки .

Это стабильный выпуск библиотеки поддержки 28.0.0 и подходит для использования в рабочей среде.Это будет последний выпуск функции в пакете android.support, и разработчикам рекомендуется перейти на AndroidX.

Вы все равно можете использовать путь к классам поддержки.(не забудьте почистить и собрать) Но настоятельно рекомендуем перейти на AndroidX, поскольку поддержка 28.0.0 является последней версией.

(помните, НЕ ОБА)

0 голосов
/ 05 октября 2018

Android Studio имеет параметр предпочтения «Исключить из импорта и завершения», который можно использовать для подавления предложения пакетов androidx:

enter image description here

На этом снимке экрана, например, я добавил пакет java.time в этот список, потому что я хочу, чтобы при автозаполнении предлагалось org.threeten.bp.LocalDate, но никогда java.time.LocalDate.

Вы должны иметь возможность добавить androidx.annotation к этому списку, чтобы решить вашу проблему.

0 голосов
/ 05 октября 2018

Android Studio может импортировать только те файлы, которые включены в ваш путь к классам.Это включает в себя библиотеки Androidx - к счастью, если классы отсутствуют, Studio не предложит их (именно поэтому остальные из нас не видят эту проблему в наших проектах).

При этом,Здесь подразумевается, что вы обновили свой файл Gradle, чтобы включить пакет, содержащий androidx.annotation.NonNull

com.android.support:support-annotations стал androidx.annotation:annotation:1.0.0 в соответствии с руководством по миграции , поэтому вы можете искать эту группув файле модуля Gradle.

Самое простое исправление - удалить этот пакет из Gradle, затем очистить и перестроить.

Примечание. Если вы хотите использовать аннотации поддержки, то самая последняя и лучшая версия28 как упомянуто здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...