无法在android TV首选项片段中找到提供程序 [英] Failed to find provider in android TV Preferences fragment

查看:179
本文介绍了无法在android TV首选项片段中找到提供程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

获取失败,无法找到用户0的提供程序com.google.android.katniss.search.searchapi.VoiceInteractionProvider;有望为此电视首选项片段

Getting Failed to find provider com.google.android.katniss.search.searchapi.VoiceInteractionProvider for user 0; expected to find a valid ContentProvider for this authority for tv Preference Fragment

E/Android运行时:致命异常:主要流程:com.omniwyse.tvprefdemo,PID:2025java.lang.RuntimeException:无法启动活动ComponentInfo {com.omniwyse.tvprefdemo/com.omniwyse.tvprefdemo.SettingActivity}:android.view.InflateException:二进制XML文件行#18:二进制XML文件行#18:错误膨胀类在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1808)在android.os.Handler.dispatchMessage(Handler.java:106)在android.os.Looper.loop(Looper.java:193)在android.app.ActivityThread.main(ActivityThread.java:6669)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)原因:android.view.InflateException:二进制XML文件第18行:二进制XML文件第18行:膨胀类错误原因:android.view.InflateException:二进制XML文件第18行:膨胀类错误造成原因:java.lang.reflect.InvocationTargetException在java.lang.reflect.Constructor.newInstance0(本机方法)在java.lang.reflect.Constructor.newInstance(Constructor.java:343)在android.view.LayoutInflater.createView(LayoutInflater.java:647)在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)在android.view.LayoutInflater.inflate(LayoutInflater.java:492)在android.view.LayoutInflater.inflate(LayoutInflater.java:423)在android.support.v17.preference.BaseLeanbackPreferenceFragment.onCreateRecyclerView(BaseLeanbackPreferenceFragment.java:42)在android.support.v14.preference.PreferenceFragment.onCreateView(PreferenceFragment.java:270)在android.support.v17.preference.LeanbackPreferenceFragment.onCreateView(LeanbackPreferenceFragment.java:54)在android.app.Fragment.performCreateView(Fragment.java:2522)在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1298)在android.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2426)在android.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2205)在android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2161)在android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2062)在android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3051)在android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2998)在android.app.Fragment.performActivityCreated(Fragment.java:2537)在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1318)在android.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2426)在android.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2205)在android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2161)在android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2062)在android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3051)在android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2998)在android.app.FragmentController.dispatchActivityCreated(FragmentController.java:182)在android.app.Activity.performCreate(Activity.java:7143)在android.app.Activity.performCreate(Activity.java:7127)在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.omniwyse.tvprefdemo, PID: 2025 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.omniwyse.tvprefdemo/com.omniwyse.tvprefdemo.SettingActivity}: android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class Caused by: android.view.InflateException: Binary XML file line #18: Error inflating class Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at android.view.LayoutInflater.createView(LayoutInflater.java:647) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.support.v17.preference.BaseLeanbackPreferenceFragment.onCreateRecyclerView(BaseLeanbackPreferenceFragment.java:42) at android.support.v14.preference.PreferenceFragment.onCreateView(PreferenceFragment.java:270) at android.support.v17.preference.LeanbackPreferenceFragment.onCreateView(LeanbackPreferenceFragment.java:54) at android.app.Fragment.performCreateView(Fragment.java:2522) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1298) at android.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2426) at android.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2205) at android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2161) at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2062) at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3051) at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2998) at android.app.Fragment.performActivityCreated(Fragment.java:2537) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1318) at android.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2426) at android.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2205) at android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2161) at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2062) at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3051) at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2998) at android.app.FragmentController.dispatchActivityCreated(FragmentController.java:182) at android.app.Activity.performCreate(Activity.java:7143) at android.app.Activity.performCreate(Activity.java:7127) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)

     public class SettingsFragment extends LeanbackSettingsFragment {
@Override
public void onPreferenceStartInitialScreen() {

    startPreferenceFragment(new PrefsFragment());
}

@Override
public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) {
    final Fragment f =
            Fragment.instantiate(getActivity(), pref.getFragment(), pref.getExtras());
    f.setTargetFragment(caller, 0);
    if (f instanceof PreferenceFragment || f instanceof PreferenceDialogFragment) {
      //  startPreferenceFragment(f);
    } else {
       // startImmersiveFragment(f);
    }
    return true;
}

@Override
public boolean onPreferenceStartScreen(PreferenceFragment caller, PreferenceScreen pref) {
    final Fragment f = new PrefsFragment();
    final Bundle args = new Bundle(1);
    args.putString(PreferenceFragment.ARG_PREFERENCE_ROOT, pref.getKey());
    f.setArguments(args);
    startPreferenceFragment(f);
    return true;
}

}

@SuppressLint("ValidFragment")公共类PrefsFragment扩展了LeanbackPreferenceFragment {

@SuppressLint("ValidFragment") public class PrefsFragment extends LeanbackPreferenceFragment {

@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
    // Load the preferences from an XML resource
    setPreferencesFromResource(R.xml.preferences, rootKey);
}

}

推荐答案

我通过更改主题首选项 Theme.Leanback

I solve this issue with changing theme preference Theme.Leanback

在清单文件上:

<activity android:name=".ui.setting.YourSettingPrefActivity"
        android:exported="true"
        android:theme="@style/Theme.Pref.LeanbackPreferences"/>

然后在styles.xml上

And here on styles.xml

<style name="Theme.Pref.LeanbackPreferences" parent="Theme.Leanback">
    <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Leanback</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:backgroundDimEnabled">true</item>
    <item name="android:colorPrimary">@color/fastlane_background</item>
</style>

这篇关于无法在android TV首选项片段中找到提供程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆