获取失败,无法为用户0找到提供程序com.google.android.katniss.search.searchapi.VoiceInteractionProvider;有望为此电视首选项片段
找到一个有效的ContentProvider来获得此权限E / Android运行时:致命异常:主要 流程:com.omniwyse.tvprefdemo,PID:2025 java.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)
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 {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
// Load the preferences from an XML resource
setPreferencesFromResource(R.xml.preferences, rootKey);
}
}
答案 0 :(得分:0)
我通过更改主题首选项 Theme.Leanback
解决了此问题在清单文件上:
<activity android:name=".ui.setting.YourSettingPrefActivity"
android:exported="true"
android:theme="@style/Theme.Pref.LeanbackPreferences"/>
这里是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>