Intereting Posts
Проблемы с MediaPlayer, исходные ресурсы, остановка и запуск Как преобразовать виды в растровые изображения? Android: «Не удалось выполнить« воспроизведение »в« HTMLMediaElement »: API может быть инициирован только жестом пользователя Добавить готовые APK в Android AOSP system.img Фрагменты метода onClick в фрагменте Создатель активности В чем разница между паролем хранилища ключей и паролем ключей в Android Sign Certification? Изменение цвета шрифта TextView при выборе элемента списка ListView Ошибка удаления камеры Android от PreviewCallback Получите регистрационный идентификационный номер GCM без отправки сообщения Можно ли программным образом удалить запоминаемые группы Wifi Direct из Android? Android: должен ли я добавить пустой конструктор к фрагменту, используемому в ViewPager Недопустимый JAVA_HOME при сборке с кордорой Com.google.android.gms.maps.MapFragment: не удается разрешить символ "maps" Как установить высоту и ширину dp для просмотра изображений в android?

Кинжал 2, Gradle Plugins и Jack – Требуемое руководство

Я использую Dagger 2 (первый пользователь библиотеки DI) с Android Studio (AS 2.1.2 – SDK 24), и, очевидно, моя первая мысль: «Какие зависимости мне нужны, чтобы использовать его?»

Посмотрев примеры, я вижу, что вам нужен файл build.gradle верхнего уровня, для build.gradle необходим плагин процессора аннотаций:

  classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 

Теперь зависимости на уровне Module build.gradle применяют apt-модуль для Module поэтому я получаю что-то вроде:

 apply plugin: 'com.neenbedankt.android-apt' // other generic settings - android / buildTypes etc. dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) . . compile 'com.google.dagger:dagger:2.6' apt 'com.google.dagger:dagger-compiler:2.6' provided 'javax.annotation:jsr250-api:1.0' } 

ПРОБЛЕМА

Я использовал, когда-то, Jack Tool Chain и Java 8 в моих проектах и ​​выяснил, что вышеуказанная конфигурация несовместима с Джеком.

Изучив, что мне нужно, чтобы Джек и Кинжал 2 сотрудничали, я изменил следующее:

Gradle-wrapper.properties:

Изменился на :

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

Build.gradle (верхний уровень)

Изменился на:

 classpath 'com.google.guava:guava:19.0' // added after getting NoSuchMethod Error - it solved the issue classpath 'com.android.tools.build:gradle:2.2.0-alpha7' 

Build.gradle (Уровень модуля)

Изменился на:

 compile 'com.google.dagger:dagger:2.6' annotationProcessor 'com.google.dagger:dagger-compiler:2.6' 

С этими изменениями я смог использовать Jack Tool Chain и создать небольшой проект. Однако без изменения кода у меня возникли проблемы с созданием компонента – в простой строке кода: testComponent = DaggerTestComponent.builder().build(); Слово DaggerTestComponent стало красным (очевидно, библиотека Dagger 2 не работала так, как должна). Мне удалось решить эту ошибку старыми недействительными кэшами, очистить и перестроить. Однако каждый раз, когда я пытаюсь построить небольшой тестовый проект, я страдал от случайных ошибок – мне удалось пару раз запустить приложение (и оно работает так, как ожидалось), но, очевидно, оно довольно темпераментное.

ВОПРОС

Итак, вопрос, и я прошу прощения за то, что он так долго, но думал, что все вышеизложенное имеет значение,

Есть ли более «стабильная» настройка, чем то, что я использую на данный момент? Кто-нибудь еще столкнулся с этими проблемами?

Очевидно, мне не нужно использовать цепочку инструментов Jack и Java 8, но я бы предпочел не компрометировать, если мне это не нужно!

Solutions Collecting From Web of "Кинжал 2, Gradle Plugins и Jack – Требуемое руководство"