Идентификатор приложения productFlavors
Я пытаюсь сделать два типа сборок в Android Studio, используя productFlavors
, Мне нужно иметь уникальный идентификатор приложения для каждого типа buld. И вот проблема:
Прежде всего я добавляю этот код в мой файл Gradle
productFlavors {
base {
applicationId "ru.Public.lib"
}
city {
applicationId "ru.Public.lib.city"
}
Затем, когда я пытаюсь создать приложение с типом города, Android Studio показывает ошибку:
"Error:Execution failed for task ':app:processBaseDebugGoogleServices'.
No matching client found for package name 'ru.Public.lib.debug'"
После этого я решил, что мне нужно изменить имя пакета в моем файле манифеста. Я попытался изменить имя пакета в Manifest тремя способами:
В структуре проекта я создал новое приложение Manifest> src > city > AndroidManifest.xml. В этом файле я использую
package="ru.Public.lib.city"
Я не создал новый манифест. Вместо этого я использовал placehilder для имени пакета, как это:
package="${applicationId}"
Я объединил эти два метода: "использование заполнителя в новом манифесте в приложении> src > city >"
Все показанные способы дают мне ошибку в манифесте: Android Studio окрашивает имена действий красным цветом и говорит unsolved class 'Activity Name'
Вот часть моего Манифеста
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ru.Public.lib">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:name="ru.Public.lib.app.Application"
android:hardwareAccelerated="true"
android:icon="@mipmap/icon"
android:label="@string/app_name"
android:largeHeap="true"
android:resizeableActivity="false"
android:supportsRtl="true"
android:theme="@style/AppTheme.NoActionBarDefault">
<activity
android:name=".activities.ActivityMain"
android:configChanges="orientation|keyboardHidden">
</activity>
<activity
android:name=".activities.ActivityEdition"
android:configChanges="orientation|screenSize|keyboardHidden">
</activity>
.....................................................................etc.
</manifest>
Так. Похоже, мне нужно воссоздать все мои действия в новых каталогах в соответствии с каждым нужным именем пакета. Но это слишком сложный способ. Я уверен, что Google решил эту проблему.
У кого-нибудь есть идеи по этому вопросу?
Спасибо!
1 ответ
Вот некоторый шаг, чтобы решить это.
Перейти к вашей консоли Firebase
Выберите свой предыдущий проект и добавьте другое приложение
Зарегистрируйте другой идентификатор приложения (зарегистрируйте все ваши идентификаторы приложений по одному)
- Тогда Скачать новый
google-services.json
- И место новое
google-services.json
в вашем проекте
Это оно