小编Vas*_*sco的帖子

Android Studio 3.0 beta2

当我构建我的项目时,我收到以下错误:

错误:com.android.builder.merge.DuplicateRelativeFileException:找到多个与OS无关的路径'META-INF/app_debug.kotlin_module'的文件

这是我的build.gradle文件

  buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
        google()
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
    }

    apply plugin: 'com.android.application'
    apply plugin: 'io.fabric'
    apply plugin: 'kotlin-android'
    apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "com.e9innovation.infrastructure"
        multiDexEnabled true
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        vectorDrawables.useSupportLibrary true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        debug {
            signingConfig signingConfigs.debug
        }
    }

    signingConfigs {
        debug {
            storeFile file('../keystores/debug.keystore')
            storePassword …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-studio build.gradle android-gradle-plugin

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

如果没有 @Provides 注释的方法,则无法提供 Dagger/MissingBinding androidx.lifecycle.ViewModelProvider.Factory

我正在尝试在我的项目中实现 ViewModel Factory,但在使用 Dagger 2 实现它时遇到一些问题。我提供了必要的代码,以便您可以查看并让我知道建议。

我有所有需要提供的方法。另外我想提一下,我正在尝试通过 ViewModelFactory 将参数(存储库)传递给我的 ViewModel 类,这就是我收到错误的地方。

这是我正在使用的所有课程:

HomeViewModel.kt

class HomeViewModel @Inject constructor(
        private val  categoriesRepository: CategoriesRepository) : ViewModel() {

    val categories by lazyDefferd {
        categoriesRepository.getCategories()
        Log.d("All_Categories", "")
    }
}
Run Code Online (Sandbox Code Playgroud)

HomeViewModelFactory.kt

@Suppress("UNCHECKED_CAST")
@Singleton
class HomeViewModelFactory @Inject constructor
    (private val viewModelsMAp: Map<Class<out ViewModel>, @JvmSuppressWildcards Provider<ViewModel>>)
        : ViewModelProvider.Factory {

    override fun <T : ViewModel?> create(modelClass: Class<T>): T {
        val creator = viewModelsMAp[modelClass] ?: viewModelsMAp.entries.firstOrNull {
            modelClass.isAssignableFrom(it.key)
        }?.value ?: throw ViewModelNotFound()
        try {
            return creator.get() as T
        } catch …
Run Code Online (Sandbox Code Playgroud)

android viewmodel kotlin dagger-2

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