Может создавать автоматически сгенерированный вариант сборки отладки apk, но не пользовательский вариант сборки apk

#android #gradle #android-gradle-plugin #build.gradle

#Android #gradle #android-gradle-плагин #build.gradle

Вопрос:

Я могу сгенерировать подписанный APK с автоматически сгенерированным вариантом сборки отладки и выпуска, но не с добавленным промежуточным вариантом.

     buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            buildConfigField "String", "REST_BASE_URL", RELEASE_REST_BASE_URL
            buildConfigField "String", "PREF_FILE_KEY", RELEASE_PREF_FILE_KEY
            buildConfigField "Boolean", "RETROFIT_CLIENT", RELEASE_RETROFIT_CLIENT
        }

        debug {
            applicationIdSuffix ".debug"
            debuggable true
            buildConfigField "String", "REST_BASE_URL", DEV_REST_BASE_URL
            buildConfigField "String", "PREF_FILE_KEY", DEV_PREF_FILE_KEY
            buildConfigField "Boolean", "RETROFIT_CLIENT", DEV_RETROFIT_CLIENT
        }

        staging {
            applicationIdSuffix ".debugStaging"
            debuggable true
            buildConfigField "String", "REST_BASE_URL", STAGING_REST_BASE_URL
            buildConfigField "String", "PREF_FILE_KEY", STAGING_PREF_FILE_KEY
            buildConfigField "Boolean", "RETROFIT_CLIENT", STAGING_RETROFIT_CLIENT
        }
    }
  

Я в основном взял вариант отладки и продублировал его для промежуточной обработки, за исключением изменения некоторых полей конфигурации.

Я получаю эту ошибку ТОЛЬКО при выполнении промежуточной сборки apk. Отладочная сборка apk не является проблемой:

Произошел сбой при выполнении com.android.build.gradle.internal.tasks.Столкнулись рабочие $ ActionFacade Имя записи ‘META-INF/androidx.hilt_hilt-common.version’

Я распечатал дерево зависимостей. Единственными записями для hilt-common являются следующие:

  --- androidx.hilt:hilt-common:{strictly 1.0.0-alpha02} -> 1.0.0-alpha02 (c)

|     --- androidx.hilt:hilt-common:1.0.0-alpha02
|    |    --- com.google.dagger:hilt-android:2.28-alpha (*)

|     --- androidx.hilt:hilt-common:1.0.0-alpha02
  

Я действительно не вижу ничего, что выглядит так, будто оно показывает конфликт, но опять же, я действительно не знаю, как читать распечатку зависимостей. Может быть, я что-то упускаю

И, кстати, это было не всегда так. Это произошло из ниоткуда; просто внезапно ни с того ни с сего.

Ответ №1:

Если объявление initWith debug не будет дублировать ничего:

 buildTypes {
    staging {
        initWith debug
        applicationIdSuffix ".staging"
        buildConfigField "String", "REST_BASE_URL", RELEASE_REST_BASE_URL
        buildConfigField "String", "PREF_FILE_KEY", RELEASE_PREF_FILE_KEY
        buildConfigField "Boolean", "RETROFIT_CLIENT", RELEASE_RETROFIT_CLIENT
    }
}
  

И этот вопрос не имеет dependencies блока.

Комментарии:

1. когда я сказал дублировать, я имел в виду, что скопировал конфигурацию и изменил то, что мне было нужно. как я уже сказал, мне удалось создать промежуточный apk раньше, но внезапно он перестал работать. в любом случае я также пробовал с помощью «initWith», и это ничего не помогло. о каком блоке «зависимостей» вы говорите?