在Android Jetpack Compose中,由于其设计的特性,一些传统的资源文件(如drawable和layout)可能不会自动地进行代码生成。因此,在使用过程中会报出“R.drawable not found”之类的错误。
要解决这个问题,可以通过使用“resource compiler”的方式来针对Compose模块生成资源代码。具体实现可以参考以下代码:
dependencies { implementation 'androidx.compose.ui:ui:1.0.0-beta08' implementation "androidx.compose.runtime:runtime-livedata:1.0.0-beta08"
// Other Jetpack libraries ... }
android { buildFeatures { compose true // Enables Jetpack Compose for this module }
composeOptions { kotlinCompilerVersion = "1.4.32" kotlinCompilerExtensionVersion = "1.0.0-beta08" }
sourceSets { main { res.srcDirs += 'src/main/customres' // The location of non-default resources. } } }
其中,customres就是我们新建的目录,用于存放自定义资源文件(如图片文件等)。使用这种方式,Composer就能够自动地将资源文件进行代码生成,从而解决“R.drawable not found”的问题。