【问题标题】:Searchable.xml not found on build of instant app在构建即时应用程序时找不到 Searchable.xml
【发布时间】:2018-07-07 09:00:44
【问题描述】:

feature/src/main/res/xml/searchable.xml

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/app_name"
    android:hint="@string/search_hint" >
    <!-- TODO https://developer.android.com/guide/topics/search/searchable-config -->
</searchable>

在构建的即时应用程序中找不到,除了样式之外,基本模块中没有任何内容。错误输出行是:

AGPBI: {"kind":"error","text":"error: resource xml/searchable (aka at.mts.arnatomy.app:xml/searchable) not found.","sources":[{"file":"./arnatomy/base/build/intermediates/manifests/full/feature/debug/AndroidManifest.xml","position":{"startLine":53}}],"original":"","tool":"AAPT"}

feature/src/main/AndroidManifest.xml中对应的action:

<activity
        android:name=".SearchableActivity"
        android:launchMode="singleTop">
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>
        <meta-data android:name="android.app.searchable"
            android:resource="@xml/searchable"/>
</activity>

中对应文本字段的布局为feature/src/main/res/layout/search.xml

...
<android.support.v7.widget.AppCompatEditText
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="@string/search_hint"
            android:imeOptions="actionSearch"
            android:inputType="text"
            android:layout_weight="1"/>
...

feature/src/main/java/SearchableActivity.java的相关代码为:

...
AppCompatEditText text = findViewById(R.id.text);
        text.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                boolean handled = false;
                if (actionId == EditorInfo.IME_ACTION_SEND) {
                    doMySearch(v.getText().toString());
                    handled = true;
                }
                return handled;
            }
        });
...

doMySerach 方法只是打印一个 Toast。 minSdkVersion是24,target-compileSdkVersion都是27。searchable.xml文件怎么可能没有成立?我也尝试过,但是基础模块中的 xml 文件夹仍然没有成功。

【问题讨论】:

    标签: android android-instant-apps


    【解决方案1】:

    xml 文件夹移动到基本模块中并进行干净的重建可以解决问题。在即时应用中,searchable.xml 接缝只允许在构建模块中。

    【讨论】:

    • 清单中引用的任何内容都必须存在于基本模块中,请参阅stackoverflow.com/a/44928134/6668797
    • 从来没有在 android.com 的文档上读过,谢谢你的解释。
    猜你喜欢
    • 2019-12-30
    • 2015-01-14
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 2011-02-10
    • 1970-01-01
    相关资源
    最近更新 更多