小编cod*_*old的帖子

Android:在Gradle构建脚本中使用packageNameSuffix时,SearchableInfo为null

我遇到的是,如果我在项目的Gradle构建脚本中使用,则该方法getSearchableInfoSearchView初始化期间始终返回null packageNameSuffix

SearchView初始化:

final SearchManager searchManager = (SearchManager) context.getSystemService(Context.SEARCH_SERVICE);
SearchableInfo info = searchManager.getSearchableInfo(componentName);
mSearchView.setSearchableInfo(info);
Run Code Online (Sandbox Code Playgroud)

项目的build.gradle:

android {
    [...]
    buildTypes {
        debug {
            packageNameSuffix ".debug"
            versionNameSuffix "-debug"
            signingConfig signingConfigs.debug
        }
        [...]
    }
}
Run Code Online (Sandbox Code Playgroud)

如果不使用软件包后缀,则给定componentNameComponentInfo{com.example.android/com.example.android.MapActivity}SearchView以及与其关联的SuggestionsProvider工作正常。

但是,如果packageNameSuffix将设置为".debug",则给定componentNameComponentInfo{com.example.android.debug/com.example.android.MapActivity}SearchManager返回null,而不是返回各自的SearchableInfo对象。

有谁知道如何得到正确的SearchableInfo距离SearchManager?谢谢!

[编辑]

尤金·马蒂诺夫(Eugen Martinov)在评论中提到,此行为可能需要对不正确或缺少的权限进行更名。但是我还配置了一个与构建类型相关的权限命名,为了简单起见,我在最初的文章中将其省略。

项目的build.gradle:

android {
    [...]
    sourceSets {
        debug {
            java.srcDirs = [ …
Run Code Online (Sandbox Code Playgroud)

android gradle searchable build.gradle

3
推荐指数
1
解决办法
1057
查看次数

标签 统计

android ×1

build.gradle ×1

gradle ×1

searchable ×1