小编Ale*_*lex的帖子

撰写图像/图标渐变色调

是否可以在撰写布局中使用渐变对矢量图像进行着色?似乎 Modifier.background 为其创建了背景,因此它不是解决方案。ColorFilter之类的还不支持。

android android-jetpack-compose

8
推荐指数
1
解决办法
4518
查看次数

带有文档的 Maven 发布

我正在尝试将文档包含到 Maven 发布中。该出版物本身运作良好。我还可以使用以下设置将源和 javadoc 发布到 gitlab 包。我可以下载并打开包含这些类的注释/文档的javadoc.jar 和sources.jar。然而,当我将该库作为我的 android 应用程序的依赖项作为 gradle 依赖项包含在内时,我无法使用 F1 或打开该类时看到我的接口/类上的注释。

任何帮助,将不胜感激。

使用 kotlin DSL

    id("maven-publish")
    id("org.jetbrains.dokka")
Run Code Online (Sandbox Code Playgroud)
tasks {
    dokka {
        outputFormat = "javadoc"
        outputDirectory = "$buildDir/javadoc"
        moduleName = rootProject.name
    }
}

val dokkaJar by tasks.creating(Jar::class) {
    group = JavaBasePlugin.DOCUMENTATION_GROUP
    description = "Assembles Kotlin docs with Dokka"
    archiveClassifier.set("javadoc")
    from(tasks.dokka)
    dependsOn(tasks.dokka)
}

val sourcesJar by tasks.registering(Jar::class) {
    archiveClassifier.set("sources")
    from(android.sourceSets.getByName("main").java.srcDirs)
}

artifacts {
    archives(sourcesJar)
    archives(dokkaJar)
}
Run Code Online (Sandbox Code Playgroud)
afterEvaluate {
    publishing {
        publications {
            create<MavenPublication>("snapshot_aar") {
                groupId = libGroupId
                artifactId = …
Run Code Online (Sandbox Code Playgroud)

android publish maven gitlab aar

5
推荐指数
0
解决办法
524
查看次数

将视图模型注入到仪器测试中

我搜索了很多关于如何将 ViewModel 注入测试以便我可以测试它的方法。假设视图模型有一个带有一些业务逻辑交互器的构造函数注入。我可以很容易地将它注入到片段中,但在测试中没有成功。

@HiltAndroidTest
class ViewModelTest

 val randomViewmodel: RandomViewmodel// now what ? since by viewModels() is not accessible in tests

    @Test
    fun viewModelTet() {
        randomViewmodel.triggerAction()
        assertEquals(RandomVIewState(1), randomViewmodel.getState())
    }
Run Code Online (Sandbox Code Playgroud)

我试图在测试类中实现 byViewModels() 并且可以在没有构造函数参数的情况下注入视图模型,但没有成功。

class RandomViewmodel @ViewModelInject constructor(
     private val randomInteractor: RandomInteractor
) : ViewModel
Run Code Online (Sandbox Code Playgroud)
Caused by: java.lang.InstantiationException: class app.RandomViewModel has no zero argument constructor
Run Code Online (Sandbox Code Playgroud)

原因:我希望能够完全测试我的屏幕逻辑,因为 viewModel 将处理对交互器等的依赖。在各种数据流动的背后可能有很多逻辑。测试片段很可能是可能的,但在具有大量测试的较大项目中会较慢。

我已经阅读了https://developer.android.com/jetpack/guide#test-components,它建议进行 JUnit 测试并模拟 viewModel 中的依赖项,但是您必须单独为每个依赖项创建测试并且无法真正测试整个屏幕的逻辑

testing android android-espresso dagger-2 dagger-hilt

1
推荐指数
1
解决办法
1024
查看次数