Android 스튜디오를 업데이트하면 activity_main.xml의 구성 요소를 더 이상 사용할 수 없습니다.
2875 단어 AndroidStudioKotlin
아무것도하지 않았지만 activity_main.xml이 손상되었습니다! !
이 책에 따라 Android 앱을 작성했는데, 아무것도 아닌 곳에서 오류가 발생하게되었습니다.
예를 들면 이런 곳.
이 btStart가 빨간색 문자가되어 Unresolved reference라고합니다.
위의 btStart는 Button의 처리에 관한 것이지만, Button에 한하지 않고 같은 현상이 된다.
가장 먼저 타이포의 가능성을 생각했지만, activity_main.xml을 확인하면 잘못되지 않은 것 같았다.
여기의 기재는 교본대로이고, 지금까지도 몇번이나 쓰고 있다.
가능한 한 직전에 Android 스튜디오를 업데이트했습니다.
원래 activity_main.xml의 객체를 어떻게 얻는지
기본적으로 findViewById를 사용하여 버튼 객체를 얻습니다.
val btStart = findViewById<Button>(R.id.btStart)
(실제로 다른 교본은 findViewById를 사용하는 방법을 사용합니다.)
이것을 매번 실행하는 것이 번거롭기 때문에 kotlin-android-extensions라는 plugin을 사용하여 시작과 같은 쓰기가 가능합니다.
kotlin-android-extensions 추가
플러그인을 어디에서 읽고 있는지 확인하십시오.
app/build.gradle (: app)을 들여다 보았습니다.
업데이트 전부터 사용하고 있는 다른 파일은 이런 느낌:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
(以下省略)
이번에 새롭게 작성한 프로젝트의 파일은 다음과 같은 내용으로 되어 있었다:
plugins {
id 'com.android.application'
id 'kotlin-android'
}
(以下省略)
분명히 kotlin-android-extensions의 플러그인이 들어 있지 않은 것 같습니다.
이것을 넣어 보자.
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
}
나머지는 MainActivity.kt에서 가져옵니다.
import kotlinx.android.synthetic.main.activity_main.*
추가하면 안전 오류가 사라졌습니다.플러그인을 작성하는 방법이 바뀌는 점
위의 비교를 보면 같은 plugin이 사용되고 있는 것을 알 수 있지만, 쓰는 방법이 약간 바뀌고 있다.
. . . 왜?
조사해 보면 그 문장이 발견되었다.
Gradle
The version should be literal in this block, and it cannot be applied from another build script.
Alternatively, you can use the older apply plugin approach:
apply plugin: 'kotlin'
It's not recommended that you apply Kotlin plugins with apply in Gradle Kotlin DSL – see why.분명히
apply plugin: 'kotlin'
는 권장되지 않는 것 같습니다.앞으로는
plugins {id 'com.android.application}
를 사용하는 것이 좋을 것 같다.(라고 할까 처음부터 그렇게 되어 있는 것이겠지만.)
죄송합니다. 라는 것은 아니다.
이 문제에 대해 조사하고 있다면 이런 기사가 발견되었습니다.
Kotlin Android Extensions의 미래
이것을 읽는 한, kotlin-android-extensions는 추천되지 않고, 가까이 삭제되어 kotlin-parcelize라는 것으로 바뀝니다.
여기등은 추구 수정해 나가야 할 것 같다.
Reference
이 문제에 관하여(Android 스튜디오를 업데이트하면 activity_main.xml의 구성 요소를 더 이상 사용할 수 없습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/momontagna/items/070c3553ecee6434597a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)