找不到类'kotlin.jvm.internal.DefaultConstructorMarker'

bon*_*oJR 5 java android kotlin kotlin-android-extensions

我目前正在开发一款在Kotlin中编码的Android应用程序.一切都很好,直到昨天,在某些时候我开始在logcat中出现此错误,当发生这种情况时,不会显示应用程序的内容.这是长篇描述:

11-23 17:08:40.819 10472-10472/ch.XXX.XXX W/dalvikvm: DexOpt: resolve class illegal access: Lch/XXX/XXX/commons/features/CouponsManager; -> Lkotlin/jvm/internal/DefaultConstructorMarker;
11-23 17:08:40.819 10472-10472/ch.XXX.XXX E/dalvikvm: Could not find class 'kotlin.jvm.internal.DefaultConstructorMarker', referenced from method ch.XXX.XXX.commons.features.CouponsManager.<init>
11-23 17:08:40.819 10472-10472/ch.XXX.XXX W/dalvikvm: VFY: unable to resolve check-cast 3145 (Lkotlin/jvm/internal/DefaultConstructorMarker;) in Lch/XXX/XXX/commons/features/CouponsManager;
11-23 17:08:40.819 10472-10472/ch.XXX.XXX W/dalvikvm: DexOpt: resolve class illegal access: Lch/XXX/XXX/commons/features/CouponsManager; -> Lkotlin/jvm/internal/DefaultConstructorMarker;
Run Code Online (Sandbox Code Playgroud)

引用的类是在Kotlin中编写的,并且在错误开始出现之前未被修改.

编辑

这是导致问题的类:

class CouponsManager(private val api: RestApi = RestApi()) {

    fun getAllCoupons(): Observable<CouponDataResponse> {
        return Observable.create { subscriber ->

            val callResponse = api.getCoupons()
            val response = callResponse.execute()

            if (response.isSuccessful) {
                val coupons = response.body()

                subscriber.onNext(coupons)
                subscriber.onCompleted()
            } else {
                subscriber.onError(Throwable(response.message()))
            }

        }
    }

    fun getCoupons(): Observable<List<Coupon>> {
        return getAllCoupons().map {
            it.Coupons.map {
                Coupon(it.TopCouponImageUrl, it.BarcodeUrl, it.TopCouponText, it.BottomCouponText, it.BottomCouponImageUrl)
            }
        }
    }

    fun getLoyaltyCards(): Observable<List<Coupon>> {
        return getAllCoupons().map {
            it.Loyalty.map {
                Coupon(it.TopCouponImageUrl, it.BarcodeUrl, it.TopCouponText, it.BottomCouponText, it.BottomCouponImageUrl)
            }
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

bon*_*oJR 5

因此,正如@DimaRostopira所说,Kotlin不适用于Instant Run,因此已经关闭,但显然,在更新到新版本的Android Studio之后,似乎已完成构建以支持Instant Run,所以一些已经存在的构建类只有部分编译和缓存.

我试图清理项目,但我不得不手动擦除整个build文件夹,以使项目再次正确运行.

因此,解决方案是rm -Rf build/在项目文件夹中,打开Android Studio并从头开始重新构建所有内容.