在即时应用程序的构建中找不到Searchable.xml

时间:2018-07-07 09:00:44

标签: android android-instant-apps

功能/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"}

功能/src/main/AndroidManifest.xml 中的相应操作:

<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"/>
...

功能/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 文件夹仍然没有成功。

1 个答案:

答案 0 :(得分:0)

xml 文件夹移至基本模块并进行干净的重建解决了该问题。在即时应用中, searchable.xml 接缝仅允许在构建模块中使用。