我想知道是否可以在片段或活动之外使用场注入?我知道我可以使用构造函数注入,但是,我想知道是否也可以使用字段注入。我觉得用匕首是有可能的。
当我试图用注入的yclass字段做一些事情时,我得到了这个错误
lateinit property yClass has not been initialized
但它是在我创建的模块中初始化的。
根据文档,我需要使用@AndroidEntryPoint注释来使用字段注入,但在这种情况下,我得到了这个错误:
@AndroidEntryPoint base class must extend ComponentActivity, (support) Fragm
正在尝试从Dagger到Hilt逐屏迁移。迁移了一个活动,它工作得很好,但大多数应用程序活动使用DialogFraments,并且在为DialogFragment添加注释@AndroidEntryPoint时也可以,但是旧的不迁移的活动不能使用该片段,得到运行时错误:
Hilt Fragments must be attached to an @AndroidEntryPoint Activity. Found: class com......MainActivity
你有什么办法让DialogFragment在希尔特和达格的活动中一起工作吗?
在用@AndroidEntryPoint注释了M
应用程序一旦安装就会崩溃,并抛出上面奇怪的错误。我已经注释了该活动,如下所示,以及它的子片段。 @AndroidEntryPoint
class HomeActivity : AppCompatActivity() {
companion object{
lateinit var currentUser: User
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
片段不在单元测试中加载。
代码:
@RunWith(AndroidJUnit4::class)
class DataFeature {
@Test
fun testEventFragment() {
val fragmentArgs = bundleOf("test" to "100")
val scenario = launchFragmentInContainer<DetailFragment>(fragmentArgs)
}
}
错误:
java.lang.Illega
我对Hilt有个问题,我一直在下面的图片中得到错误:
当错误指示将注释@HiltAndroidApp添加到AppController类时。我已经这样做了,类名也被添加到清单文件中。此外,使用hilt注入的所有活动和片段类都使用了@AndroidEntryPoint注释。我试着调试这个问题已经好几个小时了,但没有结果。当在super.onCreate(savedInstanceState)文件中调用SignupActivity.kt时,就会发生崩溃。下面是文件的哪个部分:
enter code here
我正在尝试将添加到文档中的示例中。
我按照示例创建了一个演示,并将其发布到上。
演示包含3个片段:HomeFragment、ProfileFragment和LoginFragment。在ProfileFragment中,有一个检查用户是否已连接的条件。如果用户未连接,则将其发送到LoginFragment。
ProfileFragment
@AndroidEntryPoint
class ProfileFragment : Fragment(R.layout.fragment_profile) {
private val mainViewModel: MainViewModel by
你好,我正在用柄依赖注射器构建应用程序,但当我试图构建应用程序时,我的标题出现了错误。这是我的密码:
Flow级:
@Entity(tableName = "flows_table")
data class Flow @Inject constructor(@PrimaryKey(autoGenerate = true) val id:Int, val name:String, val duration:Int, val actions:ArrayList<Action>)
行动课:
data class Action @Inject constructor(
我试图在MVVM体系结构中使用DialogFragment,但是我找不到一些问题的答案。
,我应该使用@AndroidEntryPoint这个概念吗?如下所示:
@AndroidEntryPoint类MyDialogFragment():DialogFragment() { }
我该如何提供viewModel?DialogFragment应该有自己的viewModel吗?还是使用片段的viewModel更好呢?如下所示:
val viewModel: FragmentViewModel by viewModels()
或
val viewModel: DialogFragmentViewMod
我尝试使用ViewModel将数据从DialogFragment发送到Fragment,但似乎fragment和Dialog fragment都引用了不同的ViewModel实例。所以我不能访问数据。有没有办法解决这个问题?谢谢 这是我的片段 @AndroidEntryPoint
class FragmentToReceiveData:BaseFragment(R.layout.fragment_1){
private val viewModel: AddScheduleViewModel by viewModels()
override fun onViewCreated(vi
我刚刚学会了手动依赖注入,但我正在尝试使用Hilt来处理这些依赖注入。
我想将ViewModel注入到Fragment中。该片段包含在一个Activity中。现在,我已经将注释添加到Application、Activity和Fragment中。
@HiltAndroidApp
class MovieCatalogueApplication : Application()
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
...
}
@AndroidEntryPoint
class HomeFragment : F
嗨,我想在我的BaseActivity中注入通用的BaseActivity类型,如何使用Dagger解决这个问题。
@AndroidEntryPoint
abstract class BaseActivity<VM: BaseViewModel> : AppCompatActivity() {
@Inject
lateinit var viewModel: VM
}
我对Hilt非常陌生,我想在Android应用程序中使用它。问题是,在构建过程中,我得到了一个依赖周期,我不太确定如何解决这个问题。
基本思想是我有一个本地数据库,我想将它注入到活动中。我有一个定义工具栏的活动,在那里需要本地DB来执行由工具栏触发的操作,然后我有一个活动扩展了这个活动,我在其中注入了其他东西。
下面是一些代码作为示例:
@Singleton
public class LocalDatabase{
...
}
@Module
@InstallIn(SingletonComponent.class)
public abstract class LocalDatabase
我正在创建一个Android应用程序(Java),并首次使用了导航组件和Hilt。在导航编辑器中,我正在创建目的地,并看到我创建的带有@AndroidEntryPoint注释的片段现在显示为"Hilt_“+片段名。现在我的应用程序无法构建,因为编译器正在寻找一个带有"Hilt_“+片段名的构造函数,而不仅仅是片段名。例:我的片段名为HomeFragment,但在导航编辑器中称为Hilt_HomeFragment。编译时出错:
Caused by: androidx.fragment.app.Fragment$InstantiationException: Unable to i
应用程序
@HiltAndroidApp
class MyApplication : Application()
模块
@Module
@InstallIn(ActivityComponent::class, FragmentComponent::class)
class ApplicationModule {
@Provides
fun provideService(): Service = ServiceImpl()
}
片段
@AndroidEntryPoint
class MyFragment: Fragment() {
@Inject lateinit var