Кажется, что Inflater принимает только XmlBlock.
Я написал метод для этого, вы можете ссылаться на сайт проекта: https://github.com/liudongmiao/preference-fragment-compat/blob/master/src/me/piebridge/android/preference/PreferenceFragment.java#L202
Основные коды, такие как:
// byte[] data = ...
// bytes of compiled xml (unzip the apk, get the bytes from res/layout*/*.xml)
// XmlBlock block = new XmlBlock(data);
Class<?> clazz = Class.forName("android.content.res.XmlBlock");
Constructor<?> constructor = clazz.getDeclaredConstructor(byte[].class);
constructor.setAccessible(true);
Object block = constructor.newInstance(data);
// XmlPullParser parser = block.newParser();
Method method = clazz.getDeclaredMethod("newParser");
method.setAccessible(true);
XmlPullParser parser = method.invoke(block);