Как использовать JAR в коде? Легко в Android Studio, но не работает в IntelliJ IDEA - PullRequest
0 голосов
/ 05 июня 2019

В Android Studio Я создал фиктивный проект для тестирования пакета Klaxon , который обрабатывает JSON.Поэтому я поместил приведенный ниже код внутрь onCreate и измените текст кнопки creatorButton.

class Product(val name: String)  // Kotlin, but could be Java
val product = Product("HDD")
val result = Klaxon().toJsonString(product)   
creatorButton.text = result 

Klaxon находится в jcenter хранилище.Итак, в файле модуля Build.Gradle я добавил в группу dependency:

implementation 'com.beust:klaxon:5.0.1'

Когда я запускаю приложение на своем мобильном телефоне Android, кнопка отображает метку

{"Name":"HDD"}

После этого я хочу провести глубокое тестирование Klaxon на IntelliJ IDEA, поэтому мне не нужно эмулировать или запускать в мобильном телефоне все время, когда я хочу что-то протестировать.

Итак, я создал пустой Kotlin проект с Gradle.

fun main() {
    class Product(val name: String)
    val product = Product("HDD")
    val result = Klaxon().toJsonString(product)  // Error
    println(result)
}

Я следую советам в этом вопросе и добавляю библиотеку JAR в структуру проекта (она не работает) или добавляю библиотеку JAR в папку libs изапустите «Добавить как библиотеку» (тоже не сработало)

PS: я пытался редактировать зависимости в Gradle.build, но он не принимает тот же синтаксис Android Studio.

Как я могу решить эту загадку?Независимо от того, что я делаю, он всегда выдает ошибку в строке с Klaxon call ()

1 Ответ

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

Я обнаружил другую хитрость, так как никакая попытка редактировать Gradle в IntelliJ IDEA с использованием тех же команд, что и в Android Studio, не работала в группе dependencies: я пытаюсь использовать implementation с jcenter string, с командой files или filetree (как описано в документации )

Сначала я закрыл проект Kotlin с помощью Gradle.

Затем я создал новый проект Kotlin без include Gradle (это самый важный шаг), скопируйте весь исходный код и добавьте JAR-файл так же, как предложено в вопросе stackoverflow .

Поэтому я проверяю, если в File / Settings/ Editor / General / Auto Import, опция Insert Import on Paste равна all, а Add unambiguous import on the fly равна on.

Наконец, когда я использую функцию Klaxon(),Intellij IDEA спрашивает об отсутствующем импорте, и я подтвердил Alt+Enter.

И исходный код получает строку

import com.beust.klaxon.Klaxon

Теперь мой код Kotlin работает как чудо

Кстати, если в проекте можно увидеть External Libraryдерево (левая сторона), один дочерний узел - klaxon.5.0.5.jar, то есть моя библиотека.com.beust.klaxon открывает имена классов.

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