我正在使用Hilt将上下文和其他依赖项注入到HomeViewModel类中。一切正常,但我收到此警告。如何防止泄漏?
这是我的HomeFragment(我在其中注入和使用HomeViewModel类):
@AndroidEntryPoint
class HomeFragment : Fragment() {
private val viewModel: HomeViewModel by viewModels()
....
}
这是警告:
class HomeViewModel @ViewModelInject constructor(
@ApplicationContext val context: Context,
private val locationAPI: LocationAPI,
private val imagesAPI: ImagesAPI
) :
ViewModel() {
...
}
我正在使用:
//Hilt DI
implementation "com.google.dagger:hilt-android:2.30.1-alpha"
kapt "com.google.dagger:hilt-android-compiler:2.30.1-alpha"
implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha02"
kapt "androidx.hilt:hilt-compiler:1.0.0-alpha02"
谢谢!
-在第一个给出的答案之后根据建议进行编辑:
现在,“家庭片段”为:
@HiltViewModel
class DetailsViewModel @Inject constructor(
@ApplicationContext val context: Context,
private val locationDetailsAPI: LocationAPI) :
ViewModel() {
...
}
依赖关系已更新为:
//Hilt DI
implementation "com.google.dagger:hilt-android:2.31-alpha"
kapt "com.google.dagger:hilt-android-compiler:2.30.1-alpha"
implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
kapt "androidx.hilt:hilt-compiler:1.0.0-alpha03"
而且我仍然收到这个泄漏的错误。
有任何想法吗?
我没有收到此警告,而是以相同的方式注入上下文。
尝试更新为hilt的2.31.2-alpha和hilt-androidx的1.0.0-alpha03
有一些重大变化。您将需要使用@HiltViewModel注释视图模型,使用@Inject而不是@ViewModelInject。并且您将需要用SingletonComponent替换对ApplicationComponent的所有引用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句