Ресурс не устанавливается из другого варианта приложения

https://drive.google.com/file/d/1cIoD5Uw5Jkut--qsJUX_hYBx13gbFNM2/view

Смотрите в видео выше

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

градиент:

productFlavors {
    fibodo {
        applicationId "com.fibodo.consumer"
        versionCode 1
        versionName "4.0.16"
    }

    jdsports {
        applicationId "com.fibodo.jdsports"
        versionCode 1
        versionName "1.0.0"
    }
}

Вот скриншоты, на которых видно, что предварительный просмотр работает нормально, но при запуске приложения не отображается соответствующий логотип.

отладка фибодо

jdDebug

скриншот jd

скриншот фибодо


person ahuja007    schedule 28.11.2018    source источник
comment
пожалуйста, не ссылайтесь на скриншоты или видео. Просто добавьте сюда свой код, так у вас больше шансов получить помощь.   -  person Nikos Hidalgo    schedule 28.11.2018
comment
Вы также установили этот ресурс изображения в коде Java?   -  person fatemeh fallahi arezoudar    schedule 28.11.2018
comment
@fatemehfallahiarezoudar нет   -  person ahuja007    schedule 28.11.2018
comment
сделал это, добавив условие в код Java. Но я хочу, чтобы это было сделано только из xml. Является ли это возможным? Пожалуйста помоги   -  person ahuja007    schedule 29.11.2018
comment
@ ahuja007 у вас были ресурсы во всех разрешениях (hdpi, mdpi, xhdpi, ...)?   -  person fatemeh fallahi arezoudar    schedule 01.12.2018
comment
Для обоих вариантов ресурсы находятся в формате xxhdpi.   -  person ahuja007    schedule 01.12.2018
comment
у вас есть ресурсы в папке src/main/res?   -  person fatemeh fallahi arezoudar    schedule 01.12.2018
comment
Да. ресурс, который показан для обеих сборок, находится в main/res   -  person ahuja007    schedule 01.12.2018
comment
хорошо, я подготовлю ваш ответ с фотографиями :)   -  person fatemeh fallahi arezoudar    schedule 01.12.2018


Ответы (2)


когда вы используете ароматизаторы, вам нужно иметь ресурсные файлы ароматов в отдельных папках, например, если у вас есть эти два аромата:

productFlavors {
    fibodo {
        applicationId "com.fibodo.consumer"
        versionCode 1
        versionName "4.0.16"
    }

    jdsports {
        applicationId "com.fibodo.jdsports"
        versionCode 1
        versionName "1.0.0"
    }
}

у вас должны быть такие папки:

папка src

добавьте свои ресурсы аромата в их собственную папку и удалите эти ресурсы из вашей папки main/res.

введите здесь описание изображения

В этой позиции каждый вариант сначала просматривает свои папки res, чтобы найти ресурсы, и если они не могут их найти, они будут искать папку main/res, поэтому, если вы поместите ресурсы в отдельные папки, они не будут смешиваться.

person fatemeh fallahi arezoudar    schedule 01.12.2018
comment
Спасибо за ответ обязательно попробую - person ahuja007; 01.12.2018

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

Допустим, ваше устройство предварительного просмотра — xhdpi, а эмулятор — xxhdpi, вы предоставляете ресурсы только для xhdpi, поэтому оно работает только в режиме предварительного просмотра, но не в эмуляторе.

Должен быть такой сценарий или что-то подобное: устройство не находит именно тот ресурс, который ему нужен, поэтому использует ресурс по умолчанию!

person touhid udoy    schedule 01.12.2018