Articles of Котлин

Многие небольшие модули или несколько больших модулей для лучшей производительности?

Несколько лет назад, когда я впервые принял град для Android (до Gradle 2.0), я обнаружил, что для использования и в зависимости от модуля есть некоторые накладные расходы, поэтому я остался в стороне от разделения моего проекта на более мелкие модули и вместо этого создал Очень большие модули. После тестирования некоторых других систем сборки (например, Buck) […]

Использование функции «с»

Есть ли кто-нибудь, кто может объяснить мне, для чего используется функция «с»? Подпись public inline fun <T, R> with(receiver: T, f: T.() -> R): R = receiver.f() доктор Вызывает указанную функцию f с данным приемником в качестве приемника и возвращает его результат. И я нашел его использование в этом проекте Антонио Лейва . Он использовался […]

WeakReference не работает в Котлине

Я реализую AsyncTask в Kotlin, и мне нужен WeakReference для обратного вызова, который выполняется в onPostExecute() . Я устанавливаю ссылку слушателя перед вызовом execute() , но как только onPostExecute() , значение WeakReference равно null . class PhotoRotationTask(uri: Uri, filePath: String, resolver: ContentResolver) : AsyncTask<Int, Int, Int>() { private var weakRef : WeakReference<OnBitmapProcessedListener>? = null var […]

CompileKotlin block in build.gradle file throws error "Не удалось найти метод compileKotlin () для аргументов "

Я пытаюсь настроить Kotlin на работу с Java 1.8 в моем проекте Android. Я попытался добавить блок compileKotlin в нижней части моего файла build.gradle , но я получаю сообщение об ошибке, если я это сделаю. Произошла следующая ошибка: Ошибка: (38, 0) Не удалось найти метод compileKotlin () для аргументов [build_dvcqiof5pov8xt8flfud06cm3 $ _run_closure4 @ 66047120] в […]

Ошибка: выполнение выполнено для задачи ': app: compileDebugKotlin'. > Ошибка компиляции. Подробнее см. Журнал

Error:Execution failed for task ':app:compileDebugKotlin'. > Compilation error. See log for more details строить: Gradle (Module: приложение) buildscript { repositories { maven { url 'https://jitpack.io' url 'https://maven.fabric.io/public' } } dependencies { classpath 'io.fabric.tools:gradle:1.+' } } apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'io.fabric' apply plugin: 'kotlin-android-extensions' repositories { maven { url 'https://maven.fabric.io/public' } mavenCentral() […]

Лучший способ комбинировать целые флаги с использованием Kotlin?

В java мы регулярно объединяем флаги через | оператор. например getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN ); Я не могу найти эквивалентного оператора в Котлине. Кто-нибудь знает удобный способ комбинировать целые флаги в Котлине?

Подавить «Идентификатор не разрешен в Android»

Для моего приложения, написанного в Kotlin, я использую обратные имена методов для тестов, например: fun `API login error – don't save token or user`() { Он работает, тесты компилируются и работают без проблем, но Lint в Android Studio отмечает эти методы как ошибку с сообщением Identifier not allowed in Android . Есть ли способ подавить […]

Улучшение синтаксического анализа Java / Kotlin JSON

Я использую API, который дает мне этот тип JSON: { "data": { "name": "Start", "pid": "1", "position": { "data": { "x": "31", "y": "330" }, "metadata": "empty" } }, "metadata": "empty" } Я создал классы с объектами с той же структурой, что и выше JSON. Я использую retrofit библиотеку в Android, которая внутри использует GSON […]

Kotlin inline ключевое слово, вызывающее IntelliJ IDEA Отчетность о покрытии 0%

Я создал очень простую тестовую функцию, как показано ниже. class SimpleClassTest { lateinit var simpleObject: SimpleClass @Mock lateinit var injectedObject: InjectedClass @Before fun setUp() { MockitoAnnotations.initMocks(this) } @Test fun testSimpleFunction() { simpleObject = lookupInstance() } inline fun lookupInstance() = SimpleClass(injectedObject) } Я запускаю его с помощью Coverage … Номер тестового покрытия – 0%. Но если […]

Компоненты архитектуры Kotlin kapt и android

Я использую компоненты Kotlin, kapt и Android Architecture. Когда я строю проект, все кажется прекрасным, но после попытки запустить приложение на устройстве / эмуляторе Gradle's: собрать задачу выкинуть эти ошибки: Предупреждение: предупреждение: поддерживаемая исходная версия 'RELEASE_7' из обработчика аннотаций 'android.arch.persistence.room.RoomProcessor' меньше, чем -source '1.8' Предупреждение: предупреждение: Поддерживаемая исходная версия 'RELEASE_7' из обработчика аннотаций 'android.arch.lifecycle.LifecycleProcessor' меньше, […]