Intereting Posts
Приложение скомпилируется каждый раз, когда Gradle запускается, принимая значительное время Android: Google MapView показывает индикатор прогресса во время загрузки карты Android / SQLite: колонки Insert-Update для сохранения идентификатора Доступ к окну свойств Android Studio? Confused о testCompile и androidTestCompile в Android Gradle Передача файлов между Android и iPhone через Bluetooth? Является ли Java API новой даты доступным в Android N? Просмотр календаря для Android GingerBread и ранее (API <11) Как использовать ADB для отправки сенсорных событий на устройство с помощью команды sendevent? Как исправить эту ошибку после обновления Android 2.2.3 до 2.3? Как нарисовать растровое изображение в андроиде? Импорт правильного метода AssertThat для Robolectric Test Пользовательская фильтрация в Android с помощью ArrayAdapter Snackbar скрывает плавающее действие при нажатии на кнопку действия на нем Универсальный загрузчик изображений: могу ли я использовать кеш, но также обновлять его?

Android Studio 3.0 Предварительный просмотр Отсутствует Импорт при рефакторинге кода Котлина

Всякий раз, когда я пытаюсь реорганизовать код Koltin на Android Studio 3.0, он просто удаляет все мои «верхние уровни» импорта и начинает использовать импорт «inplace».

Рефакторинг я имею в виду, в данном случае, перемещение кода вокруг. Итак, допустим, у меня есть класс под пакетом com.myapp . Если я переведу его на com.myapp.anotherpackage, эта проблема будет

Забавный факт об этом выглядит так, как будто это происходит, когда вы перемещаете несколько файлов одновременно

На что это похоже:

//Before refactoring I have this import import android.support.v7.app.AppCompatActivity; class MyActivity : AppCompatActivity() { //code } 

Затем после рефакторинга это происходит так

 //"top level" import is gone class MyActivity : android.support.v7.app.AppCompatActivity() { //"inline" import //code } 

Введите описание изображения здесь

Это становится еще хуже, если мне придется повторно преобразовать код, так как каждый отдельный импорт «встроен», а андроид-студия не реорганизует их, и я должен их исправить вручную. Это уже очень раздражает, поскольку мне пришлось исправить более 100 из них. Любые мысли о том, как это исправить?

Solutions Collecting From Web of "Android Studio 3.0 Предварительный просмотр Отсутствует Импорт при рефакторинге кода Котлина"

Это очень похоже на ошибку, которая была исправлена ​​не так давно. Соответствующие изменения не были включены в плагин Kotlin в комплекте с предварительным просмотром As3.0. Но они будут доступны в следующем обновлении плагина.

Похоже, что это может быть ошибка. Мне удалось воссоздать проблему в IntelliJ и создать этот отчет об ошибке: https://youtrack.jetbrains.com/issue/KT-18205

Тад поздно, чтобы присоединиться к вечеринке, но, во всяком случае. Kotlin – относительно новый язык (с точки зрения его официального для Android, чуть ли не месяц назад), поэтому разработка идет полным ходом на JetBrains. И версия Android Studio (3.0) не является стабильной версией, поэтому вот все известные проблемы Kotlin с Android Studio. Проверьте эти проблемы здесь .

Там четко сказано:

Некоторые рефакторинги не доступны с Kotlin

Не все рефакторинги кода работают с Kotlin, особенно для Android. Например, ретрансляция кода для модуляции Kotlin cude в настоящее время не работает с Kotlin.

Java-совместимая Android-студия не знакома с встроенными функциями Kotlin. Так как это новое включение в Kotlin, он делает код более читабельным (правда?), Но не настолько простым для программиста , как таковым.

Сказав это, прямо сейчас нет источника (проверено несколько, другие приветствуются), подтверждающие, что ваша проблема является проблемой или улучшением Kotlin над Java (опять же очень спорным), поскольку inline -ing должен был стать улучшенной функциональностью ,

Теперь пришло время, чтобы эта функция была адресована официальным тегом.

Кажется, этот «рефакторинг» происходит после перемещения файла и обновления пакета.

В качестве обходного пути до исправления ошибки IDE / Plugin вы можете сделать следующее:

После перемещения файла (рефакторинг) щелкните файл правой кнопкой мыши,

  1. Выберите локальную историю → Показать историю
  2. Выберите предыдущую ревизию, в которой удалены все импортные
  3. Выберите возврат

Удостоверьтесь, что вы дважды проверяете результат, знаете, у вас должна быть правильно переделанная / рефакторинговая версия.


Иногда это не работает, но вы можете попытаться отменить (Move) и переместить его снова.

Протестировано на AS 3.0 Canary 3