Android: SearchableInfo имеет значение null при использовании packageNameSuffix в скрипте сборки Gradle
Я столкнулся с этим методомgetSearchableInfo
всегда возвращает ноль во времяSearchView
инициализация, если я используюpackageNameSuffix
в проектеСкрипт сборки Gradle.
Инициализация SearchView:
final SearchManager searchManager = (SearchManager) context.getSystemService(Context.SEARCH_SERVICE);
SearchableInfo info = searchManager.getSearchableInfo(componentName);
mSearchView.setSearchableInfo(info);
Проект»s build.gradle:
android {
[...]
buildTypes {
debug {
packageNameSuffix ".debug"
versionNameSuffix "-debug"
signingConfig signingConfigs.debug
}
[...]
}
}
Если суффикс пакета не используется, данныйcomponentName
являетсяComponentInfo{com.example.android/com.example.android.MapActivity}
иSearchView
а также связанные с нимSuggestionsProvider
отлично работает
Но еслиpackageNameSuffix
установлен в".debug"
данныйcomponentName
являетсяComponentInfo{com.example.android.debug/com.example.android.MapActivity}
иSearchManager
возвращаетсяnull
вместо возврата соответствующегоSearchableInfo
объект.
Кто-нибудь знает как получить праваSearchableInfo
отSearchManager
? Спасибо!
[РЕДАКТИРОВАТЬ]
В комментариях Евгений Мартинов отметил, что такое поведение может быть связано с неправильным или отсутствующим переименованием властей. Но я также настроил именование полномочий, зависящее от типа сборки, которое для простоты опущено в первоначальном посте.
Проект»s build.gradle:
android {
[...]
sourceSets {
debug {
java.srcDirs = [
'src/main/java'
]
java.srcDirs = [
'src/debug/res',
'src/main/res'
]
}
release {
java.srcDirs = [
'src/main/java'
]
java.srcDirs = [
'src/release/res',
'src/main/res'
]
}
[...]
}
}
SRC / отлаживать / RES / значения / строить-config.xml:
App - Debug
com.example.debug.SuggestionsProvider
SRC / отпускания / RES / значения / строить-config.xml:
App
com.example.SuggestionsProvider
SRC / главная / RES / XML / searchable.xml:
Установка как отладки (сpackageNameSuffix
вариант) и релиз apk на том же устройстве работает. Я нене получить ошибку, какFailure [INSTALL_FAILED_CONFLICTING_PROVIDER]
... но, как уже было сказано,SearchableInfo
являетсяnull
затем.
Установка обоих apk безpackageNameSuffix
Опция приводит к следующей ошибке:Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES] - Installation failed since the device already has an application with the same package but a different signature.
Или я что-то здесь упускаю?
[/РЕДАКТИРОВАТЬ]