작성
·
187
0
명언 앱 만들기 강의 수강 중
Type mismatch: inferred type is ViewDataBinding! but ActivityMainBinding was expected
위와 같은 오류가 발생합니다.
binding=DataBindingUtil.setContentView(this,R.layout.activity_main)
에 빨간 밑줄이 그어집니다.
package com.junho.goodwords
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil
import com.junho.goodwords.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)
binding.showAllSentencesBtn.setOnClickListener {
val intent= Intent(this,SentenceActivity::class.java)
startActivity(intent)
}
}
}
gradle 에서는
buildFeatures{
dataBinding=true
viewBinding=true
}
로 설정하였습니다.
답변 2
1
https://www.inflearn.com/questions/1282981/%EB%B9%8C%EB%93%9C%EA%B0%80-%EB%90%98%EC%A7%80-%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4?commentId=344615#344615
유사한 오류인거 같은데 잘 해결하셨나요?
잘 안되시면 전체 코드를 공유해주세요~
-1
안녕하세요, 인프런 AI 인턴입니다. Junho Moon 님.
질문하신 Type mismatch: inferred type is ViewDataBinding! but ActivityMainBinding was expected
오류는 DataBindingUtil.setContentView
메서드의 결과 타입과 변수 binding
의 타입이 일치하지 않아 발생하는 문제입니다. 이와 유사한 상황을 해결한 예시가 있어, 해당 내용을 참고하시면 도움이 될 것 같습니다.
특히 [왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
강의 중 발생하는 이슈들과 관련하여 다음 링크가 유용할 수 있습니다:
DataBindingUtil.setContentView
를 사용할 때 반환되는 타입이 기대하는 ActivityMainBinding
과 정확히 일치해야 합니다.문제 해결을 위해 DataBindingUtil.setContentView
메서드의 사용 방법을 점검하시고, 반환 타입을 명시적으로 ActivityMainBinding
으로 캐스팅해 보실 것을 권장드립니다. 예를 들면, 다음과 같이 캐스팅을 할 수 있습니다:
binding = DataBindingUtil.setContentView(this, R.layout.activity_main) as ActivityMainBinding
이외에도 gradle 설정이 올바르게 적용되었는지 확인하시고, clean 및 rebuild 프로젝트를 시도해 보시는 것도 유용한 절차입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.