I'm having an issue trying to add jetpack compose in a multi-module project I'm using Android Studio 4.2 Canary 3
the gradle task that fails is:module:compileDebugKotlin with this error message
e: java.lang.IllegalStateException: Backend Internal error: Exception during code generation
my:module build.gradle looks like this
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
// Compose compiler based on 1.4 but set 1.3 for compatibility
apiVersion = "1.3"
}
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerVersion "1.3.70-dev-withExperimentalGoogleExtensions-20200424"
kotlinCompilerExtensionVersion "0.1.0-dev14"
}
}
does anyone knows how to solve this problem?
the full stack trace is
e: java.lang.IllegalStateException: Backend Internal error: Exception during code generation
File being compiled: /Users/Streetwizard/Documents/Formiik/formiik-android/FormiikFXL/login/src/main/java/com/kata/formiik/login/LoginActivity.kt
The root cause java.lang.RuntimeException was thrown at: org.jetbrains.kotlin.backend.jvm.codegen.FunctionCodegen.generate(FunctionCodegen.kt:53)
at org.jetbrains.kotlin.backend.common.CodegenUtil.reportBackendException(CodegenUtil.kt:247)
at org.jetbrains.kotlin.backend.jvm.JvmBackendFacade.doGenerateFilesInternal$backend_jvm(JvmBackendFacade.kt:99)
at org.jetbrains.kotlin.backend.jvm.JvmBackendFacade.doGenerateFiles(JvmBackendFacade.kt:52)
at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.generateModule(JvmIrCodegenFactory.kt:37)
at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:35)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.generate(KotlinToJVMBytecodeCompiler.kt:635)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:194)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:163)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:51)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:86)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:104)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:346)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:102)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally(IncrementalCompilerRunner.kt:240)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.access$compileIncrementally(IncrementalCompilerRunner.kt:39)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner$compile$2.invoke(IncrementalCompilerRunner.kt:81)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:93)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:606)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:99)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1645)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: Exception while generating code for:
FUN name:onCreate visibility:protected modality:OPEN <> ($this:com.kata.formiik.login.LoginActivity, savedInstanceState:android.os.Bundle?) returnType:kotlin.Unit
overridden:
protected/*protected and package*/ open fun onCreate (p0: android.os.Bundle?): kotlin.Unit declared in androidx.appcompat.app.AppCompatActivity
$this: VALUE_PARAMETER name:<this> type:com.kata.formiik.login.LoginActivity
VALUE_PARAMETER name:savedInstanceState index:0 type:android.os.Bundle?
BLOCK_BODY
CALL 'protected/*protected and package*/ open fun onCreate (p0: android.os.Bundle?): kotlin.Unit declared in androidx.appcompat.app.AppCompatActivity' superQualifier='CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:AppCompatActivity modality:OPEN visibility:public superTypes:[androidx.fragment.app.FragmentActivity; androidx.appcompat.app.AppCompatCallback; androidx.core.app.TaskStackBuilder.SupportParentable; androidx.appcompat.app.ActionBarDrawerToggle.DelegateProvider]' type=kotlin.Unit origin=null
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
p0: GET_VAR 'savedInstanceState: android.os.Bundle? declared in com.kata.formiik.login.LoginActivity.onCreate' type=android.os.Bundle? origin=null
WHEN type=kotlin.Unit origin=IF
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCL
$this: CALL 'public open fun isTaskRoot (): kotlin.Boolean [fake_override] declared in com.kata.formiik.login.LoginActivity' type=kotlin.Boolean origin=GET_PROPERTY
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
then: BLOCK type=kotlin.Unit origin=null
VAR name:intentAction type:kotlin.String? [val]
CALL 'public open fun getAction (): kotlin.String? declared in android.content.Intent' type=kotlin.String? origin=GET_PROPERTY
$this: CALL 'public open fun getIntent (): android.content.Intent? [fake_override] declared in com.kata.formiik.login.LoginActivity' type=android.content.Intent? origin=GET_PROPERTY
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
WHEN type=kotlin.Unit origin=IF
BRANCH
if: CALL 'public final fun ANDAND (arg0: kotlin.Boolean, arg1: kotlin.Boolean): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null
arg0: CALL 'public final fun ANDAND (arg0: kotlin.Boolean, arg1: kotlin.Boolean): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=null
arg0: CALL 'public open fun hasCategory (p0: kotlin.String?): kotlin.Boolean declared in android.content.Intent' type=kotlin.Boolean origin=null
$this: CALL 'public open fun getIntent (): android.content.Intent? [fake_override] declared in com.kata.formiik.login.LoginActivity' type=android.content.Intent? origin=GET_PROPERTY
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
p0: CONST String type=kotlin.String value="android.intent.category.LAUNCHER"
arg1: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
$this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
arg0: GET_VAR 'val intentAction: kotlin.String? [val] declared in com.kata.formiik.login.LoginActivity.onCreate' type=kotlin.String? origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
arg1: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val intentAction: kotlin.String? [val] declared in com.kata.formiik.login.LoginActivity.onCreate' type=kotlin.String? origin=null
arg1: CONST String type=kotlin.String value="android.intent.action.MAIN"
then: BLOCK type=kotlin.Unit origin=null
CALL 'public open fun finish (): kotlin.Unit [fake_override] declared in com.kata.formiik.login.LoginActivity' type=kotlin.Unit origin=null
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
RETURN type=kotlin.Nothing from='protected open fun onCreate (savedInstanceState: android.os.Bundle?): kotlin.Unit declared in com.kata.formiik.login.LoginActivity'
GET_FIELD 'FIELD FIELD_FOR_OBJECT_INSTANCE name:INSTANCE type:kotlin.Unit visibility:public [final,static]' type=kotlin.Unit origin=null
CALL 'public open fun setContentView (p0: kotlin.Int): kotlin.Unit [fake_override] declared in com.kata.formiik.login.LoginActivity' type=kotlin.Unit origin=null
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
p0: GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:login_activity_login type:kotlin.Int visibility:public [static]' type=kotlin.Int origin=GET_PROPERTY
CALL 'private final fun initializeObservers (): kotlin.Unit declared in com.kata.formiik.login.LoginActivity' type=kotlin.Unit origin=null
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
CALL 'public open fun addTextChangedListener (p0: android.text.TextWatcher?): kotlin.Unit [fake_override] declared in com.google.android.material.textfield.TextInputEditText' type=kotlin.Unit origin=null
$this: CALL 'public final fun <get-activityLoginUserTextInputEditText> (): com.google.android.material.textfield.TextInputEditText? declared in kotlinx.android.synthetic.main.login_activity_login' type=com.google.android.material.textfield.TextInputEditText? origin=GET_PROPERTY
$receiver: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
p0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:textWatcher type:android.text.TextWatcher visibility:private [final]' type=android.text.TextWatcher origin=GET_PROPERTY
receiver: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
COMPOSITE type=kotlin.Unit origin=null
CALL 'public final fun addTextChangedListener$default (beforeTextChanged: kotlin.Function4<@[ParameterName(name = 'text')] kotlin.CharSequence?, @[ParameterName(name = 'start')] kotlin.Int, @[ParameterName(name = 'count')] kotlin.Int, @[ParameterName(name = 'after')] kotlin.Int, kotlin.Unit>?, onTextChanged: kotlin.Function4<@[ParameterName(name = 'text')] kotlin.CharSequence?, @[ParameterName(name = 'start')] kotlin.Int, @[ParameterName(name = 'before')] kotlin.Int, @[ParameterName(name = 'count')] kotlin.Int, kotlin.Unit>?, afterTextChanged: kotlin.Function1<@[ParameterName(name = 'text')] android.text.Editable?, kotlin.Unit>?, $mask0: kotlin.Int, $handler: kotlin.Any?): android.text.TextWatcher [inline] declared in androidx.core.widget.TextViewKt' type=android.text.TextWatcher origin=null
$receiver: BLOCK type=com.google.android.material.textfield.TextInputEditText origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp0 type:com.google.android.material.textfield.TextInputEditText? [val]
CALL 'public final fun <get-activityLoginPasswordTextInputEditText> (): com.google.android.material.textfield.TextInputEditText? declared in kotlinx.android.synthetic.main.login_activity_login' type=com.google.android.material.textfield.TextInputEditText? origin=GET_PROPERTY
$receiver: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
COMPOSITE type=com.google.android.material.textfield.TextInputEditText origin=null
CALL 'public final fun checkExpressionValueIsNotNull (value: kotlin.Any?, expression: kotlin.String): kotlin.Unit declared in kotlin.jvm.internal.Intrinsics' type=kotlin.Unit origin=null
value: GET_VAR 'val tmp0: com.google.android.material.textfield.TextInputEditText? [val] declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.google.android.material.textfield.TextInputEditText? origin=null
expression: CONST String type=kotlin.String value="this.activityLoginPasswordTextInputEditText"
GET_VAR 'val tmp0: com.google.android.material.textfield.TextInputEditText? [val] declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.google.android.material.textfield.TextInputEditText? origin=null
beforeTextChanged: COMPOSITE type=kotlin.Function4<@[ParameterName(name = 'text')] kotlin.CharSequence?, @[ParameterName(name = 'start')] kotlin.Int, @[ParameterName(name = 'count')] kotlin.Int, @[ParameterName(name = 'after')] kotlin.Int, kotlin.Unit>? origin=DEFAULT_VALUE
CONST Null type=kotlin.Function4<@[ParameterName(name = 'text')] kotlin.CharSequence?, @[ParameterName(name = 'start')] kotlin.Int, @[ParameterName(name = 'count')] kotlin.Int, @[ParameterName(name = 'after')] kotlin.Int, kotlin.Unit>? value=null
onTextChanged: COMPOSITE type=kotlin.Function4<@[ParameterName(name = 'text')] kotlin.CharSequence?, @[ParameterName(name = 'start')] kotlin.Int, @[ParameterName(name = 'before')] kotlin.Int, @[ParameterName(name = 'count')] kotlin.Int, kotlin.Unit>? origin=DEFAULT_VALUE
CONST Null type=kotlin.Function4<@[ParameterName(name = 'text')] kotlin.CharSequence?, @[ParameterName(name = 'start')] kotlin.Int, @[ParameterName(name = 'before')] kotlin.Int, @[ParameterName(name = 'count')] kotlin.Int, kotlin.Unit>? value=null
afterTextChanged: BLOCK type=kotlin.Function1<android.text.Editable?, kotlin.Unit> origin=LAMBDA
COMPOSITE type=kotlin.Unit origin=null
FUNCTION_REFERENCE 'private final fun onCreate$lambda-0 ($this: com.kata.formiik.login.LoginActivity, it: android.text.Editable?): kotlin.Unit declared in com.kata.formiik.login.LoginActivity' type=kotlin.Function1<android.text.Editable?, kotlin.Unit> origin=LAMBDA
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
$mask0: CONST Int type=kotlin.Int value=3
$handler: CONST Null type=kotlin.Any? value=null
COMPOSITE type=kotlin.Unit origin=null
CALL 'public open fun setOnClickListener (p0: android.view.View.OnClickListener?): kotlin.Unit [fake_override] declared in com.google.android.material.textview.MaterialTextView' type=kotlin.Unit origin=null
$this: CALL 'public final fun <get-activityLoginOAuthenticationLoginTextView> (): com.google.android.material.textview.MaterialTextView? declared in kotlinx.android.synthetic.main.login_activity_login' type=com.google.android.material.textview.MaterialTextView? origin=GET_PROPERTY
$receiver: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
p0: BLOCK type=com.kata.formiik.login.LoginActivity.onCreate.<no name provided> origin=null
CLASS LAMBDA_IMPL CLASS name:<no name provided> modality:FINAL visibility:public/*package*/ superTypes:[android.view.View.OnClickListener?]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:com.kata.formiik.login.LoginActivity.onCreate.<no name provided>
FIELD FAKE_OVERRIDE name:receiver type:kotlin.Any? visibility:protected [fake_override]
CONSTRUCTOR GENERATED_MEMBER_IN_CALLABLE_REFERENCE visibility:public/*package*/ <> ($this:com.kata.formiik.login.LoginActivity) returnType:com.kata.formiik.login.LoginActivity.onCreate.<no name provided> [primary]
VALUE_PARAMETER BOUND_RECEIVER_PARAMETER name:$this index:0 type:com.kata.formiik.login.LoginActivity
BLOCK_BODY
SET_FIELD 'FIELD FIELD_FOR_CAPTURED_VALUE name:$this type:com.kata.formiik.login.LoginActivity visibility:private [final]' type=kotlin.Unit origin=INITIALIZER_OF_FIELD_FOR_CAPTURED_VALUE
receiver: GET_VAR '<this>: com.kata.formiik.login.LoginActivity.onCreate.<no name provided> declared in com.kata.formiik.login.LoginActivity.onCreate.<no name provided>' type=com.kata.formiik.login.LoginActivity.onCreate.<no name provided> origin=null
value: GET_VAR '$this: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate.<no name provided>.<init>' type=com.kata.formiik.login.LoginActivity origin=null
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
BLOCK type=kotlin.Unit origin=null
FUN name:onClick visibility:public modality:FINAL <> ($this:com.kata.formiik.login.LoginActivity.onCreate.<no name provided>, it:android.view.View?) returnType:kotlin.Unit
overridden:
public abstract fun onClick (p0: android.view.View?): kotlin.Unit declared in android.view.View.OnClickListener
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:com.kata.formiik.login.LoginActivity.onCreate.<no name provided>
VALUE_PARAMETER name:it index:0 type:android.view.View?
BLOCK_BODY
CALL 'public final fun launchOAuthentication (): kotlin.Unit declared in com.kata.formiik.login.LoginViewModel' type=kotlin.Unit origin=null
$this: CALL 'public final fun access$getViewModel ($this: com.kata.formiik.login.LoginActivity): com.kata.formiik.login.LoginViewModel declared in com.kata.formiik.login.LoginActivity' type=com.kata.formiik.login.LoginViewModel origin=GET_PROPERTY
$this: GET_FIELD 'FIELD FIELD_FOR_CAPTURED_VALUE name:$this type:com.kata.formiik.login.LoginActivity visibility:private [final]' type=com.kata.formiik.login.LoginActivity origin=null
receiver: GET_VAR '<this>: com.kata.formiik.login.LoginActivity.onCreate.<no name provided> declared in com.kata.formiik.login.LoginActivity.onCreate.<no name provided>.onClick' type=com.kata.formiik.login.LoginActivity.onCreate.<no name provided> origin=null
FIELD FIELD_FOR_CAPTURED_VALUE name:$this type:com.kata.formiik.login.LoginActivity visibility:private [final]
CONSTRUCTOR_CALL 'public/*package*/ constructor <init> ($this: com.kata.formiik.login.LoginActivity) [primary] declared in com.kata.formiik.login.LoginActivity.onCreate.<no name provided>' type=com.kata.formiik.login.LoginActivity.onCreate.<no name provided> origin=null
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
CALL 'public final fun setText (p0: kotlin.CharSequence?): kotlin.Unit [fake_override] declared in com.google.android.material.textfield.TextInputEditText' type=kotlin.Unit origin=null
$this: CALL 'public final fun <get-activityLoginPasswordTextInputEditText> (): com.google.android.material.textfield.TextInputEditText? declared in kotlinx.android.synthetic.main.login_activity_login' type=com.google.android.material.textfield.TextInputEditText? origin=GET_PROPERTY
$receiver: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
p0: CALL 'public final fun <get-previouslyLoggedPassword> (): kotlin.String declared in com.kata.formiik.login.LoginViewModel' type=kotlin.String origin=GET_PROPERTY
$this: CALL 'private final fun <get-viewModel> (): com.kata.formiik.login.LoginViewModel declared in com.kata.formiik.login.LoginActivity' type=com.kata.formiik.login.LoginViewModel origin=GET_PROPERTY
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
CALL 'public final fun setText (p0: kotlin.CharSequence?): kotlin.Unit [fake_override] declared in com.google.android.material.textview.MaterialTextView' type=kotlin.Unit origin=EQ
$this: CALL 'public final fun <get-activityLoginVersionTextView> (): com.google.android.material.textview.MaterialTextView? declared in kotlinx.android.synthetic.main.login_activity_login' type=com.google.android.material.textview.MaterialTextView? origin=GET_PROPERTY
$receiver: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
p0: CALL 'public final fun <get-informationVersion> (): kotlin.String declared in com.kata.formiik.login.LoginViewModel' type=kotlin.String origin=GET_PROPERTY
$this: CALL 'private final fun <get-viewModel> (): com.kata.formiik.login.LoginViewModel declared in com.kata.formiik.login.LoginActivity' type=com.kata.formiik.login.LoginViewModel origin=GET_PROPERTY
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
CALL 'private final fun requestMissingPermissions (): kotlin.Unit declared in com.kata.formiik.login.LoginActivity' type=kotlin.Unit origin=null
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
CALL 'private final fun setupTestEnvironmentButton (): kotlin.Unit declared in com.kata.formiik.login.LoginActivity' type=kotlin.Unit origin=null
$this: GET_VAR '<this>: com.kata.formiik.login.LoginActivity declared in com.kata.formiik.login.LoginActivity.onCreate' type=com.kata.formiik.login.LoginActivity origin=null
at org.jetbrains.kotlin.backend.jvm.codegen.FunctionCodegen.generate(FunctionCodegen.kt:53)
at org.jetbrains.kotlin.backend.jvm.codegen.ClassCodegen.generateMethod(ClassCodegen.kt:342)
at org.jetbrains.kotlin.backend.jvm.codegen.ClassCodegen.generateDeclaration(ClassCodegen.kt:302)
at org.jetbrains.kotlin.backend.jvm.codegen.ClassCodegen.generate(ClassCodegen.kt:148)
at org.jetbrains.kotlin.backend.jvm.codegen.ClassCodegen$Companion.generate(ClassCodegen.kt:290)
at org.jetbrains.kotlin.backend.jvm.JvmBackendFacade.doGenerateFilesInternal$backend_jvm(JvmBackendFacade.kt:95)
... 36 more
Caused by: java.lang.IllegalArgumentException: Unhandled intrinsic in ExpressionCodegen: FUN IR_EXTERNAL_DECLARATION_STUB name:<get-activityLoginUserTextInputEditText> visibility:public modality:FINAL <> ($receiver:android.app.Activity) returnType:com.google.android.material.textfield.TextInputEditText?
at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitFunctionAccess(ExpressionCodegen.kt:373)
at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitCall(ExpressionCodegen.kt:365)
at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitCall(ExpressionCodegen.kt:104)
at org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl.accept(IrCallImpl.kt:78)
at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.gen(ExpressionCodegen.kt:171)
at org.jetbrains.kotlin.backend.jvm.codegen.IrCallGenerator$DefaultImpls.genValueAndPut(IrCallGenerator.kt:42)
at org.jetbrains.kotlin.backend.jvm.codegen.IrCallGenerator$DefaultCallGenerator.genValueAndPut(IrCallGenerator.kt:45)
at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitFunctionAccess(ExpressionCodegen.kt:411)
at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitCall(ExpressionCodegen.kt:365)
at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitCall(ExpressionCodegen.kt:104)
at org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl.accept(IrCallImpl.kt:78)
at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitStatementContainer(ExpressionCodegen.kt:355)
at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitBlockBody(ExpressionCodegen.kt:359)
at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitBlockBody(ExpressionCodegen.kt:104)
at org.jetbrains.kotlin.ir.expressions.impl.IrBlockBodyImpl.accept(IrBlockBodyImpl.kt:40)
at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.generate(ExpressionCodegen.kt:200)
at org.jetbrains.kotlin.backend.jvm.codegen.FunctionCodegen.doGenerate(FunctionCodegen.kt:100)
at org.jetbrains.kotlin.backend.jvm.codegen.FunctionCodegen.generate(FunctionCodegen.kt:51)
... 41 more
e: java.lang.IllegalStateException: Backend Internal error: Exception during code generation
Execution failed for task ':login:compileDebugKotlin'.
> Internal compiler error. See log for more details
UPDATE March 24 2021
Sorry everyone for the delay,
I never managed to compile a multi-module project with any of the compose developer preview versions, I asked a lot in the official compose slack channel and nothing worked; after compose became alpha my team and I updated the project to the 1st alpha version and Canary version of android studio at that time (which i really don't remember), and then everything worked as expected:D
Right now we are using the Android Studio Canary 8 and the compose beta 02, everything is working superfine, we even took the decision to launch some modules all made with compose in production and we haven't received any crashes in crashlytics in about 1 moth in production.
We also are still using the now deprecated kotlin synthetics in some parts of the app, the android gradle plugin shows some warnings about the deprecation but its still working as expected, and soon everything in the app will be made using compose
There was the same problem but it was caused not by modules, but by problems with android studio, it worked for me on android studio 4.1 canary 10 and with the same build parameters
If you're using Kotlin Synthetics, try changing to defined view binding. I got a similar error while integrating Twilio, and that fixed it right up. Good luck!
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.