Проблема с другим packageName, используемым в отладчике и во время выполнения - PullRequest
0 голосов
/ 28 октября 2019

Если используемый аромат указывает, что applicationId - это com.example.boo, а манифест packageName - это com.example.foo. Если я попытаюсь отладить действие и выполнить выражение оценки с findViewById(R.id.sampleView), он вернет, что ресурс не найден, потому что класс R принадлежит com.example.foo, если я сделаю это как it.resources.getResourceName((it.contentView as ViewGroup).getChildAt(3).id), это покажет, что имяis com.example.boo:id/sampleView Я нашел в официальной документации сноску , в которой упоминается такое поведение. Но ничто не говорит мне, как на самом деле отлаживать, потому что все выражения, использующие ресурсы, будут возвращать ложные негативы / позитивы, так как он не может найти рассматриваемые ресурсы. Как мне решить эту проблему?

1 Ответ

0 голосов
/ 28 октября 2019

В файле build.gradle вашего приложения в разделе defaultConfig сделайте так, чтобы ваше приложение не включало части, которые вы используете в качестве разновидностей. Например: вы appId 'com.example.foo' и затем называете свои вкусы 'flav1' и 'flav2'. В этом случае у вас будет appId, совпадающий с вашим packageName, и не должно быть таких проблем с R-файлом. Ваша заявка состоит из applicationId (com.example.foo) + flavName (flav1) = com.example.foo.flav1

...