AOSP Development: Kotlin не может получить доступ к идентификатору класса R, но Java может! Почему?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 AOSP Development: Kotlin не может получить доступ к идентификатору класса R, но Java может! Почему?

Сообщение Anonymous »

Недавно я начал погружаться в разработку AOSP и слежу за некоторыми лабораторными работами по коду, изначально написанными на Java, о том, как настроить SystemUI (для автомобильного AOSP).
Я проверил эти части CarSystemUI теперь использует Kotlin, и я хотел переделать эту лабораторную работу по коду.
Я следовал инструкциям и добавил codelab_layout.xml. Затем я обновил sysui_overlay_window.xml и добавил этот ViewStub: Который объявляет идентификатор codelab_stub.
Загадка заключается в том, что на следующем шаге я должен добавить контроллер представления. В Java лаборатория кода просит добавить:

Код: Выделить всё

@SysUISingleton
public class CodeLabViewControllerJava extends OverlayViewController {

@Inject
public CodeLabViewControllerJava(
OverlayViewGlobalStateController overlayViewGlobalStateController) {
super(R.id.codelab_stub, overlayViewGlobalStateController);
}
}
который прекрасно компилируется. Однако, если я добавлю контроллер представления в Котлине, например:

Код: Выделить всё

@SysUISingleton
class CodeLabViewControllerKotlin @Inject constructor(
overlayViewGlobalStateController: OverlayViewGlobalStateController
) : OverlayViewController(R.id.codelab_stub, overlayViewGlobalStateController)
Я получаю следующую ошибку компиляции:

Код: Выделить всё

CodeLabViewControllerKotlin.kt:12:32: error: unresolved reference: codelab_stub
) : OverlayViewController(R.id.codelab_stub, overlayViewGlobalStateController) {
^
что меня сбивает с толку, поскольку код Java компилируется без проблем.
Есть идеи, почему это происходит?
PS: Если я заменю R.id.codelab_stub на жестко запрограммированный Int, код Kotlin компилируется нормально.

Подробнее здесь: https://stackoverflow.com/questions/787 ... va-can-why
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»