Anko: Anko support plugin throw exception in Android Studio 3.1.

Created on 8 May 2018  Â·  14Comments  Â·  Source: Kotlin/anko

When I started Android Layout Preview on the following code block, Anko support plugin throw exception:

code

package io.github.alishir.salamandroid

import org.jetbrains.anko.*
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import org.jetbrains.anko.sdk25.coroutines.onClick

class MainActivityUI : AnkoComponent<MainActivity> {
    override fun createView(ui: AnkoContext<MainActivity>): View = with(ui){
        verticalLayout {
            padding = dip(30)
            editText {
                hint = "Name"
                textSize = 24f
            }
            editText {
                hint = "Password"
                textSize = 24f
            }
            button("Login") {
                onClick { text = "Gholi" }
                textSize = 26f
            }
        }
    }
}

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        MainActivityUI().setContentView(this)
    }
}

exception

org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.<init>(Lorg/jetbrains/kotlin/resolve/BindingContext;Lorg/jetbrains/kotlin/codegen/ClassBuilderMode;Lorg/jetbrains/kotlin/codegen/state/IncompatibleClassTracker;Ljava/lang/String;ZZ)V
java.lang.NoSuchMethodError: org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.<init>(Lorg/jetbrains/kotlin/resolve/BindingContext;Lorg/jetbrains/kotlin/codegen/ClassBuilderMode;Lorg/jetbrains/kotlin/codegen/state/IncompatibleClassTracker;Ljava/lang/String;ZZ)V
    at org.jetbrains.kotlin.android.dslpreview.DslPreviewClassResolver$Companion.createTypeMapper(DslPreviewClassResolver.kt:125)
    at org.jetbrains.kotlin.android.dslpreview.DslPreviewClassResolver$Companion.access$createTypeMapper(DslPreviewClassResolver.kt:121)
    at org.jetbrains.kotlin.android.dslpreview.DslPreviewClassResolver.resolveClassDescription(DslPreviewClassResolver.kt:115)
    at org.jetbrains.kotlin.android.dslpreview.DslPreviewClassResolver.getAncestors(DslPreviewClassResolver.kt:73)
    at org.jetbrains.kotlin.android.dslpreview.AnkoNlPreviewManager.resolveAvailableClasses(AnkoNlPreviewManager.kt:167)
    at org.jetbrains.kotlin.android.dslpreview.AnkoNlPreviewManager.initToolWindow(AnkoNlPreviewManager.kt:156)
    at com.android.tools.idea.uibuilder.editor.NlPreviewManager$2.run(NlPreviewManager.java:268)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)
    at com.intellij.util.ui.update.MergingUpdateQueue.lambda$flush$1(MergingUpdateQueue.java:277)
    at com.intellij.util.ui.UIUtil.invokeAndWaitIfNeeded(UIUtil.java:2816)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:288)
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:246)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:246)
    at com.intellij.util.Alarm$Request.runSafely(Alarm.java:417)
    at com.intellij.util.Alarm$Request.access$700(Alarm.java:344)
    at com.intellij.util.Alarm$Request$1.run(Alarm.java:384)
    at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:424)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:822)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


java.lang.NoSuchMethodError: org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.<init>(Lorg/jetbrains/kotlin/resolve/BindingContext;Lorg/jetbrains/kotlin/codegen/ClassBuilderMode;Lorg/jetbrains/kotlin/codegen/state/IncompatibleClassTracker;Ljava/lang/String;ZZ)V
    at org.jetbrains.kotlin.android.dslpreview.DslPreviewClassResolver$Companion.createTypeMapper(DslPreviewClassResolver.kt:125)
    at org.jetbrains.kotlin.android.dslpreview.DslPreviewClassResolver$Companion.access$createTypeMapper(DslPreviewClassResolver.kt:121)
    at org.jetbrains.kotlin.android.dslpreview.DslPreviewClassResolver.resolveClassDescription(DslPreviewClassResolver.kt:115)
    at org.jetbrains.kotlin.android.dslpreview.UpdateActivityNameTask.processRequest(UpdateActivityNameTask.kt:42)
    at org.jetbrains.kotlin.android.dslpreview.UpdateActivityNameTask.processRequest(UpdateActivityNameTask.kt:12)
    at org.jetbrains.kotlin.idea.util.LongRunningReadTask$1$1.run(LongRunningReadTask.java:110)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:912)
    at org.jetbrains.kotlin.idea.util.LongRunningReadTask$3.run(LongRunningReadTask.java:226)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:543)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:488)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
    at org.jetbrains.kotlin.idea.util.LongRunningReadTask.runWithWriteActionPriority(LongRunningReadTask.java:223)
    at org.jetbrains.kotlin.idea.util.LongRunningReadTask$1.run(LongRunningReadTask.java:105)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:315)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Most helpful comment

Android Studio doesn't work with Anko Support Plugin
Android Studio3.5
Gradle Version:gradle-5.4.1-all
Anko Support Compatibility with Android Studio Version:0.10.7-2

android studio alert:Plugin 'Anko Support' is incompatible with this installation

All 14 comments

I too can confirm the same in android 3.2 canary
So we can conclude that anko preview does not work either in 3.1.2 as in 3.2 canary 14

me too......

Fixed in 0.10.5-2

@4u7 i update anko support(0.10.5-2), does't work,

error is:
The following classes could not be found:
- __anko.preview.View (Change to android.media.tv.TvView, Fix Build Path, Edit XML, Create Class)

i face the same problem, have you solved it?

Hi,

I didn't test it recently, I used bare UI access instead of using anko.

On Mon, Aug 27, 2018 at 5:39 AM Moos notifications@github.com wrote:

i face the same problem, have you solved it?

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Kotlin/anko/issues/619#issuecomment-416087685, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA7tgsknQGL961rVtWmUQsD5ClrUpHIBks5uU0bKgaJpZM4T22bQ
.

Hi, I do have the same problem with anko support 0.10.5-2 (using anko-0.10.6).

I've looked around a bit, KotlinTypeMapper seems to have a constructor with 7 parameters now (from 2 month ago Source).

public KotlinTypeMapper(
            @NotNull BindingContext bindingContext,
            @NotNull ClassBuilderMode classBuilderMode,
            @NotNull IncompatibleClassTracker incompatibleClassTracker,
            @NotNull String moduleName,
            @NotNull JvmTarget jvmTarget,
            boolean isReleaseCoroutines,
            boolean isIrBackend
    )

@4u7 in your commit you use 6 parameters.

bindingContext,
ClassBuilderMode.LIGHT_CLASSES,
IncompatibleClassTracker.DoNothing,
"main",
false,
false

I guess that JvmTarget jvmTarget is the one missing. I can't go much further since I don't have the dev env installed.

@jeancharles-roger Looks like KotlinTypeMapper has been changed several times. What version of Kotlin plugin do you have installed?

I have the 1.3.0-rc-146.

Published Anko preview 0.10.7 with the fix

Android Studio doesn't work with Anko Support Plugin
Android Studio3.5
Gradle Version:gradle-5.4.1-all
Anko Support Compatibility with Android Studio Version:0.10.7-2

android studio alert:Plugin 'Anko Support' is incompatible with this installation

Android Studio doesn't work with Anko Support Plugin
Android Studio3.5
Gradle Version:gradle-5.4.1-all
Anko Support Compatibility with Android Studio Version:0.10.7-2

android studio alert:Plugin 'Anko Support' is incompatible with this installation

same problem with me.

Android Studio doesn't work with Anko Support Plugin
Android Studio3.5
Gradle Version:gradle-5.4.1-all
Anko Support Compatibility with Android Studio Version:0.10.7-2

android studio alert:Plugin 'Anko Support' is incompatible with this installation

I have this problem too

Was this page helpful?
0 / 5 - 0 ratings

Related issues

HarryTylenol picture HarryTylenol  Â·  4Comments

jonathanlip1100 picture jonathanlip1100  Â·  4Comments

evansherry picture evansherry  Â·  4Comments

nkanellopoulos picture nkanellopoulos  Â·  4Comments

maomaobug picture maomaobug  Â·  4Comments