草庐IT

dagger-compiler

全部标签

android - 使用 Dagger2 (Robolectric) 模拟 jetpack ViewModel 进行单元测试

所以我正在尝试使用Robolectric为我的Activity编写单元测试,但是我不知道如何提供模拟View模型,因为我的虚拟机是如何在类中直接实例化的。这是因为Jetpack的生命周期感知ViewModel需要一个Provider类来实例化。所以,我实际上是在注入(inject)自定义提供程序,然后使用它来创建我的ViewModel。我看过其他示例,但它们看起来都非常令人困惑。我如何实现这一点?classActivityEpisodeList:AppCompatActivity(){@InjectlateinitvarvmFactory:ViewModelProvider.Facto

android - 没有 Dagger2 为 JUnit 测试生成文件

新的AndroidStudio1.1版本引入了单元测试支持。这个网址http://tools.android.com/tech-docs/unit-testing-support提供如何设置IDE以运行Android源的JUnit测试的分步说明。这个插件https://bitbucket.org/hvisser/android-apt用于向AS提供Dagger2生成的文件,它适用于普通的Android代码,但不幸的是,没有为任何JUnit测试类生成的Dagger2文件。我尝试像这样配置依赖项androidTestApt'com.google.dagger:dagger-compiler

android - Dagger2 - 生成的组件类中的 "Unused"模块

我的Dagger2组件类包含3个模块,我试图使用它们将字段依赖项注入(inject)AndroidActivity类。生成的组件文件有注释说所有模块都未使用,链接此page获取更多信息。我的Activity类正在调用Component的inject(Activity)方法,并且具有由模块提供的注入(inject)注释字段,所以我不确定为什么生成的Component文件没有任何Provider来执行此注入(inject)。我的代码在下面,感谢您的帮助!生成的组件类:publicfinalclassDaggerMainComponentimplementsMainComponent{pri

EF Core预编译模型Compiled Model

前言最近还在和npgsql与EFCore斗争,由于EFCore暂时还不支持AOT,因此在AOT应用程序中使用EFCore时,会提示问题:听这个意思,似乎使用CompiledModel可以解决问题,于是就又研究了一下EFCore的这个功能。在EFCore中,模型根据实体类和配置构建,默认情况下,每次创建一个新的DbContext实例时,EFCore都会构建模型。对于需要频繁创建DbContext实例的应用程序,这可能会导致性能问题。EntityFrameworkCore(EFCore)的预编译模型(CompiledModel)对应提供了一种优化,在EFCore6preview5中首次增加了这个功

android - Dagger + 改造动态 URL

问题我需要从USER输入的域调用API,并且我需要在调用之前根据插入的数据编辑我的Retrofit单例。有没有办法“重置”我的单例,迫使它重新创建?或有没有办法在调用之前用我的数据(可能在拦截器中?)更新我的baseUrl?代码单例@Provides@SingletonRetrofitprovideRetrofit(SharedPreferencesprefs){StringapiUrl="https://%1s%2s";apiUrl=String.format(apiUrl,prefs.getString(ACCOUNT_SUBDOMAIN,null),prefs.getString

android - 切换到 Android Studio 2.0 后使用 Dagger 2 时出现 NoClassDefFoundError

在升级到AndroidStudio2.0之前,我可以毫无问题地使用Dagger2。现在我得到了一个NoClassDefFoundError这让我关闭了一天多,我正在寻求帮助。似乎Gradle不能使用我的AppModule类,尽管很明显它在我的项目中。我什至包含了setmultiDexEnabledtrue,即使我的项目只有几个文件。我在网上找到的所有内容都说您可以单击要导入的库。AndroidStudio没有这样的奢侈。如有任何帮助,我们将不胜感激,我将永远忠诚于您。04-2117:26:54.0067875-7875/com.androidtitan.spotscoreappE/An

android - 解析: compile 'com.google.firebase:firebase-config:9.2.1' 失败

在Gradle文件中添加FirebseRemoteConfigSDK时出现以下错误compile'com.google.firebase:firebase-config:9.2.1'它会显示错误Error:(25,13)Failedtoresolve:com.google.firebase:firebase-config:9.2.1在文件中显示在项目结构对话框中显示Gradle文件:applyplugin:'com.android.application'android{compileSdkVersion24buildToolsVersion"24.0.0"defaultConfig{

android - 为什么 "cocos compile -p android"给出 "The android command is no longer available."错误

我正在做一个cocos2d-x项目。我总是使用cocos命令编译android项目cocoscompile-pandroid--android-studio-mdebug。但是现在这个命令返回一个错误。android命令不再可用。FormanualSDKandAVDmanagement,pleaseuseAndroidStudio.Forcommand-linetools,usetools/bin/sdkmanagerandtools/bin/avdmanagerErrorrunningcommand,returncode:1.Errorrunningcommand,returncod

android - 启用 Google App Signing 后出现 "The AndroidManifest.xml of the uploaded APK could not be parsed. Was it compiled properly?"错误

启用GoogleAppSigning后,每次我尝试将已签名的发布APK上传到Play商店时,我都会收到一条错误消息,提示无法解析已上传APK的AndroidManifest.xml。是否正确编译?。这是使用APK分析器工具从已签名的APK中获取的AndroidManifest文件我正在使用AndroidStudioBeta6构建APK,并使用生成的上传key签名我该如何解决这个问题? 最佳答案 只是一个原始的推论。看看你的包名。package="com.myproject"它看起来很常见,据我们所知,Android使用package

android - Dagger 2 for Android 不是 DI 框架,而是美化了的 Service Locator 吗?

例如,假设我使用Retrofit创建的Rest适配器位于Application类中。我很想在Activity中获取它,所以我编写了以下代码:publicclassMainActivityextendsActivity{@InjectMyRestAdaptermRestAdapter;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);((GlobalApplication)getApplication()).getComponent().inject(this)