tinker icon indicating copy to clipboard operation
tinker copied to clipboard

接入tinker后如何使用hilt

Open Domlaa opened this issue 5 years ago • 14 comments

使用了tinker的ApplicationLike之后,对于要在Application中开启的注解,如@HiltAndroidApp需要怎么添加呢,最新的tinker支持手动创建Application吗

Domlaa avatar Oct 19 '20 16:10 Domlaa

大佬 有解决方案吗

AIYO77 avatar Oct 27 '20 08:10 AIYO77

大佬 有解决方案吗

暂时没有,@HiltAndroidApp需要注入一个无参的Application,而TinkerApplication是没有无参构造的。

Domlaa avatar Oct 29 '20 02:10 Domlaa

大佬 有解决方案吗

暂时没有,@HiltAndroidApp需要注入一个无参的Application,而TinkerApplication是没有无参构造的。

我多写了一层就可以了

AIYO77 avatar Oct 29 '20 05:10 AIYO77

大佬 有解决方案吗

暂时没有,@HiltAndroidApp需要注入一个无参的Application,而TinkerApplication是没有无参构造的。

我多写了一层就可以了

什么意思呢。。没太理解

Domlaa avatar Oct 29 '20 11:10 Domlaa

大佬 有解决方案吗

暂时没有,@HiltAndroidApp需要注入一个无参的Application,而TinkerApplication是没有无参构造的。

我多写了一层就可以了

什么意思呢。。没太理解 就是B继承TinkerApplication,@HiltAndroidApp A继承B

AIYO77 avatar Oct 30 '20 05:10 AIYO77

大佬 有解决方案吗

暂时没有,@HiltAndroidApp需要注入一个无参的Application,而TinkerApplication是没有无参构造的。

我多写了一层就可以了

什么意思呢。。没太理解 就是B继承TinkerApplication,@HiltAndroidApp A继承B 额,兄弟你用的哪个版本, 为什么我的会报错 @HiltAndroidApp base class must extend Application.

Domlaa avatar Oct 30 '20 13:10 Domlaa

大佬 有解决方案吗

暂时没有,@HiltAndroidApp需要注入一个无参的Application,而TinkerApplication是没有无参构造的。

我多写了一层就可以了

什么意思呢。。没太理解 就是B继承TinkerApplication,@HiltAndroidApp A继承B 额,兄弟你用的哪个版本, 为什么我的会报错 @HiltAndroidApp base class must extend Application.

TINKER=1.9.14.6 HILT=1.0.0-alpha02

AIYO77 avatar Nov 02 '20 03:11 AIYO77

大佬 有解决方案吗

暂时没有,@HiltAndroidApp需要注入一个无参的Application,而TinkerApplication是没有无参构造的。

我多写了一层就可以了

什么意思呢。。没太理解 就是B继承TinkerApplication,@HiltAndroidApp A继承B 额,兄弟你用的哪个版本, 为什么我的会报错 @HiltAndroidApp base class must extend Application.

TINKER=1.9.14.6 HILT=1.0.0-alpha02

好吧。。我的hilt用的太新了: 2.28.3-alpha

Domlaa avatar Nov 02 '20 09:11 Domlaa

大佬 有解决方案吗

暂时没有,@HiltAndroidApp需要注入一个无参的Application,而TinkerApplication是没有无参构造的。

我多写了一层就可以了

什么意思呢。。没太理解 就是B继承TinkerApplication,@HiltAndroidApp A继承B 额,兄弟你用的哪个版本, 为什么我的会报错 @HiltAndroidApp base class must extend Application.

TINKER=1.9.14.6 HILT=1.0.0-alpha02

好吧。。我的hilt用的太新了: 2.28.3-alpha

我也是这个版本 上边贴错了

AIYO77 avatar Nov 02 '20 09:11 AIYO77

大佬 有解决方案吗

暂时没有,@HiltAndroidApp需要注入一个无参的Application,而TinkerApplication是没有无参构造的。

我多写了一层就可以了

什么意思呢。。没太理解 就是B继承TinkerApplication,@HiltAndroidApp A继承B 额,兄弟你用的哪个版本, 为什么我的会报错 @HiltAndroidApp base class must extend Application.

TINKER=1.9.14.6 HILT=1.0.0-alpha02

好吧。。我的hilt用的太新了: 2.28.3-alpha

我也是这个版本 上边贴错了

这就很尴尬。。奇了怪了

Domlaa avatar Nov 02 '20 09:11 Domlaa

官方木有适配方案么,Hilt毕境是未来趋势呀,现在集成tinker报:No signature of method: org.gradle.api.internal.file.DefaultFilePropertyFactory$DefaultDirectoryVar.getFiles() is applicable for argument types: () values: [] Possible solutions: getAsFile(), getOrElse(java.lang.Object), getOrElse(java.lang.Object), getClass(), getType(), file(java.lang.String),期待大佬解决方案~~

webor2006 avatar Jan 06 '21 08:01 webor2006

+1 请问现在有解决方案了吗?

kennir avatar Oct 26 '21 07:10 kennir

如果使用了Hilt,则可以声明一个无参的类使用注解,而这个无参数的类继承自自定义的继承自TinkerApplication类。示例如下:open class TinkerSampleApplication : TinkerApplication( ShareConstants.TINKER_ENABLE_ALL, "com.example.App", "com.tencent.tinker.loader.TinkerLoader", false, false ) 声明注解的类继承自TinkerSampleApplication: import dagger.hilt.android.HiltAndroidApp @HiltAndroidApp class TinkerApp : TinkerSampleApplication() ⚠️⚠️⚠️注意:使用Hilt注解的话,开启tinker的加固支持:isProtectedApp = true,不然的话补丁包修复完成之后,使用Hilt的页面会崩溃。

nsacer avatar Mar 14 '22 09:03 nsacer

如果使用了Hilt,则可以声明一个无参的类使用注解,而这个无参数的类继承自自定义的继承自TinkerApplication类。示例如下:open class TinkerSampleApplication : TinkerApplication( ShareConstants.TINKER_ENABLE_ALL, "com.example.App", "com.tencent.tinker.loader.TinkerLoader", false, false ) 声明注解的类继承自TinkerSampleApplication: import dagger.hilt.android.HiltAndroidApp @HiltAndroidApp class TinkerApp : TinkerSampleApplication() ⚠️⚠️⚠️注意:使用Hilt注解的话,开启tinker的加固支持:isProtectedApp = true,不然的话补丁包修复完成之后,使用Hilt的页面会崩溃。

这个方法我试了,不行 。运行可以不报错但是打补丁就会报错 报错的是hilt生成的类Hilt_XXXApplication which is not in loader class, this may cause crash when patch is loaded

limoxiao avatar Jun 09 '22 09:06 limoxiao