2014-12-17 2 views
13

Я надеюсь, что кто-то столкнется с проблемами, которые я вижу при создании проекта java/Kotlin. Проект Interop с Java и Котлином, со следующими версиями:Kotlin: Unresolved reference: javaClass

  • Jdk 1,7
  • котлинского 0.9.66
  • Gradle (обертка) 2,0

котлинскими занимается составлением штрафа до к нескольким изменениям, которые я сделал, т.е. преобразовал несколько классов Java в эквивалентные версии kotlin.

Вот ошибки, которые я вижу:

c:\projects\myproject>gradlew :java:workspace:models:compileKotlin --stacktrace  :java:workspace:models:compileKotlin 

w: Annotations path entry points to a non-existent location: 
C:\projects\myproject\java\workspace\models\annotations 

e: C:\projects\CustomerProfileEmail.kt: (15, 32): Unresolved reference: toLowerCase 
e: C:\projects\CustomerProfilePhone.kt: (34, 22): Unresolved reference: equalsIgnoreCase 
e: C:\projects\Account.kt: (17, 21): Unresolved reference: javaClass 
e: C:\projects\Account.kt: (18, 21): Unresolved reference: javaClass 
e: C:\projects\Account.kt: (31, 15): Unresolved reference: indexOf 
e: C:\projects\Account.kt: (35, 15): Expression 'length' of type 'kotlin.Int' cannot be invoked as a function. The function invoke() is not found 
e: C:\projects\Account.kt: (39, 15): Expression 'length' of type 'kotlin.Int' cannot be invoked as a function. The function invoke() is not found 
e: C:\projects\Balance.kt: (10, 21): Unresolved reference: javaClass 
e: C:\projects\Balances.kt: (12, 21): Unresolved reference: firstOrNull 
e: C:\projects\Balances.kt: (12, 35): Cannot infer a type for this parameter. To specify it explicitly use the {(p : Type) -> ...} notation 
e: C:\projects\Debit.kt: (7, 12):Unresolved reference: javaClass 
e: C:\projects\ProgramR.kt: (12, 21): Unresolved reference: javaClass 
e: C:\projects\ProgramR.kt: (13, 21): Unresolved reference: javaClass 
e: C:\projects\Transaction.kt: (7, 12): Unresolved reference: javaClass 
e: C:\projects\Transaction.kt: (7, 40): Unresolved reference: javaClass 
e: C:\projects\Adjustment.kt: (13,21): Unresolved reference: javaClass 
e: C:\projects\Reward.kt: (12, 24): Unresolved reference: javaClass 
:java:workspace:models:compileKotlin FAILED 

FAILURE: Build failed with an exception. 

Вот пример исходного кода:

import javax.xml.bind.annotation.* 

XmlAccessorType(XmlAccessType.FIELD) 
XmlType 
XmlSeeAlso(javaClass<LoyaltyCredit>(), javaClass<Debit>()) 
public open class Transaction: TransactionParent(){ 
    public var account: Account? = null 
    public var balances: Balances? = null 
    public var rewards: Rewards? = null 
} 

Gradle сценария

repositories { 
    mavenCentral() 
} 

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.connorgarvey.gradle:gradle-grails-wrapper:1.0' 
     classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.9.66' 
     classpath 'org.jetbrains.kotlin:kotlin-stdlib:0.9.66' 
    } 
} 

apply from: 'build/includes.gradle' 

Я уже видел это: https://devnet.jetbrains.net/message/5478050 не помогло.

Любая помощь была бы принята с благодарностью!

+0

Если вы нашли исправление, которое вы сделали, но не упомянуто в принятом ответе, пожалуйста, обновите свой вопрос с помощью редактирования, описывающего, как вы разрешили ситуацию. в противном случае мог бы найти этот вопрос и не иметь представления о том, что «ссылка помогла в поиске в правильном направлении» на самом деле означает определение решения. –

ответ

5

Сравните ваш скрипт с Kotlin reference о Gradle.

Kotlin Stdlib зависимость должна быть в другом объеме, а не buildscript. Также плагин Kotlin должен применяться с использованием apply plugin.

+0

Спасибо за подсказку. Я работаю с очень запутанным сценарием. Поэтому, хотя у меня был тот же скрипт, что и тот, на который ссылался, он переопределялся по строке импортированных скриптов. Ссылка помогла посмотреть в правильном направлении! – WolfBane

+0

@WolfBane, пожалуйста, обновите свой вопрос или добавьте комментарий здесь, когда вы нашли подходящее решение. –

+1

@JaysonMinard выбранный ответ - это ответ, обозначенный как принятый. – WolfBane

Смежные вопросы