inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

데이터바인딩(Databinding) 설명

databinding 사용 시 오류

1859

Section

작성한 질문수 1

0

안녕하세요 강의 잘 듣고 있습니다.
Databinding 단계에서 gradle에 sync now 했을 때 까진 오류가 없이 잘 실행 되는데 layout을 작성하거나 activity에 바인딩 관련 코드를 입력 후 실행하면 오류가 나더라고요.
 
Build 시 오류는 없다고 나오는데 제가 사진 첨부 한 것 처럼 해당 오류가 나오고 있는데 혹시 해결법이 있을까요?
 
구글링해서 다른 databinding 코드를 입력 해봐도 해당 사진과 같은 오류가 출력됩니다.
 
 
자바 오류 인 것 같아서 자바를 재 설치랑 안드로이드 스튜디오 캐시도 삭제해도 같은 오류가 뜨는데 방법이 있을까요?
 
 
 
 
 

android kotlin firebase

답변 10

0

개복치개발자

안녕하세요 :)
잘 해결하셨다니 다행입니다. 끝까지 파이팅입니다~!

0

Section

네 윈도우 사용합니다.

강사님이 말씀하신대로 JDK와 gradle 파일에서 오류가 있었더라고요. 

아예 안드로이드 스튜디오 완전 삭제 후 최신 버젼으로 재 설치해서 잘 사용중입니다! 감사합니다 :)

0

개복치개발자

혹시 윈도우를 사용하시나요?

 

윈도우를 사용하시면 JDK를 삭제 후 한번 재 설치 해보시겠어요?

0

Section

컴파일 옵션을 1.7로 바꾸면 다른 오류가 뜨더라고요 

일단 코드엔 이상 없으니 재설치나 다른 설정 건드려서 해결해봐야겠네요 감사합니다!

> Task :app:mergeExtDexDebug FAILED

AGPBI: {"kind":"error","text":"Invoke-customs are only supported starting with Android O (--min-api 26)","sources":[{}],"tool":"D8"}

AGPBI: {"kind":"error","text":"Default interface methods are only supported starting with Android N (--min-api 24): Landroidx/core/internal/view/SupportMenuItem;setTooltipText(Ljava/lang/CharSequence;)Landroid/view/MenuItem;","sources":[{}],"tool":"D8"}

AGPBI: {"kind":"error","text":"Static interface methods are only supported starting with Android N (--min-api 24): Landroidx/constraintlayout/core/motion/utils/TypedValues$Attributes;getId(Ljava/lang/String;)I","sources":[{}],"tool":"D8"}

 

Invoke-customs are only supported starting with Android O (--min-api 26)

 

Default interface methods are only supported starting with Android N (--min-api 24): Landroidx/core/internal/view/SupportMenuItem;setTooltipText(Ljava/lang/CharSequence;)Landroid/view/MenuItem;

 

Static interface methods are only supported starting with Android N (--min-api 24): Landroidx/constraintlayout/core/motion/utils/TypedValues$Attributes;getId(Ljava/lang/String;)I

 

Execution failed for task ':app:mergeExtDexDebug'.

> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

   > Failed to transform constraintlayout-2.1.1.aar (androidx.constraintlayout:constraintlayout:2.1.1) to match attributes {artifactType=android-dex, dexing-enable-desugaring=false, dexing-incremental-transform=false, dexing-is-debuggable=true, dexing-min-sdk=16, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.

      > Execution failed for DexingNoClasspathTransform: C:\Users\H\.gradle\caches\transforms-2\files-2.1\c4d871516e96305937f335519db771b4\constraintlayout-2.1.1-runtime.jar.

         > Error while dexing.

           The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle

           android {

               compileOptions {

                   sourceCompatibility 1.8

                   targetCompatibility 1.8

               }

           }

           See https://developer.android.com/studio/write/java8-support.html for details. Alternatively, increase the minSdkVersion to 26 or above.

 

0

개복치개발자

그대로 돌려봤는데 잘 되네요~ 설정 문제인듯 합니다.

 

아래 부분 참고해보시겠어요?

 

https://stackoverflow.com/questions/48162522/android-studio-an-exception-has-occurred-in-the-compiler-1-8-0-152-release

0

Section

package com.h.databinding_ex

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
import androidx.databinding.DataBindingUtil
import com.h.databinding_ex.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

private lateinit var binding : ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

binding = DataBindingUtil.setContentView(this, R.layout.activity_main)

// 1번 방식 findViewById
// val btn = findViewById<Button>(R.id.testBtnID)
// btn.setOnClickListener {
// Toast.makeText(this,"click", Toast.LENGTH_SHORT).show()
// }

// 2번 방식 - Databinding
binding.testBtnID.setOnClickListener {
Toast.makeText(this, "click", Toast.LENGTH_LONG).show()
}


}
}

 

plugins {
id 'com.android.application'
id 'kotlin-android'
}

android {
compileSdkVersion 31
buildToolsVersion "30.0.3"

defaultConfig {
applicationId "com.h.databinding_ex"
minSdkVersion 16
targetSdkVersion 31
versionCode 1
versionName "1.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
buildFeatures{
dataBinding = true
}
// dataBinding{
// enabled true
// }
}
dependencies {

implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
<?xml version="1.0" encoding="utf-8"?>
<layout>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<Button
android:id="@+id/testBtnID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

늦게 확인했네요;-; 여깄습니다!

0

개복치개발자

코드 복사해서 주시면 제가 실행해볼게요 ㅎㅎ

0

Section

네 빠른 답변 감사합니다. 혹시 보기 불편하시다면 코드 복사해서 다시 올리겠습니다.

gradle 파일

xml 파일

mainActivity 파일

0

개복치개발자

스크린샷이 아니라 코드를 복사해서 공유해주세요~

0

개복치개발자

안녕하세요

 

 

gradle 파일과 

xml 파일

activity 파일

 

모두 다 어떻게 하셨는지 

 

공유해주시면 살펴보겠습니다.

주사위앱 소개 및 레이아웃 설정 문제

0

79

2

안드로이드 에뮬레이터가 실행이 안 되요...ㅠ

0

133

2

30 강 소스 좀 올려 주십시요

0

94

2

onBackPressed 함수가 동영상 하고 다르게 동작합니다.

0

105

2

ListView 초기 실행 안됩니다.

0

108

2

코딩을 완료하고난후 앱 실행시 자동 종료

0

82

2

datavinding에서 오류가 납니다.

0

63

1

안드로이드 스튜디오 버전 차이로 초기 empyt activity 선택하면 안됩니다.

0

132

2

context의 구별에 대하여

0

81

2

"프롤로그에서 ..." 오류 관련해 직전 질문에 대한 추가 질문입니다.

0

78

2

"프롤로그에서 콘텐츠가 허용되지 않습니다." 오류

0

174

3

해결완료

1

198

2

databinding 설정후 run하면 에러(해결)

0

231

2

databinding 설정 이후 실행시 에러

0

287

4

안드로이드 입문하는 사람입니다.

0

76

1

Firebase uid

0

88

3

activity_main 화면 다름

0

125

2

강의화면과 다른데 맞게진행되는것인가요...????

0

115

2

파이어베이스 질문

0

82

2

ActivityMainBinding에 오류가 납니다

0

143

2

선생님 onBackPressed 작동이 안되는거 같습니다

0

126

2

>app>res>layout 이 존재하지 않습니다.

0

122

2

안드로이드 스튜디오 미어캣 버전 사용 한글 깨짐

0

775

2

안드로이드 스튜디오 오류 발생 시 대처 방법은 요?

0

304

2