Когда я создаю тестовый пример Android Instrumentation ниже, я нахожу странную проблему.Со строкой загрузки нативной библиотеки lib System.loadLibrary("jnidispatch");
тест не пройден;без этой строки тестовый пример работает нормально.Я тестирую с любыми нативными библиотеками, проблема та же, поэтому не из-за поведения нативной библиотеки уничтожить общие предпочтения.Кажется, это ошибка теста инструментов Android, любой может объяснить, почему?
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
private static final String MY_ID = "MY_ID";
private static final String TEST_DATA = "Test";
@Test
public void sharedPreferenceTest() {
Context context = InstrumentationRegistry.getContext();
// Set ID
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString(MY_ID, TEST_DATA);
editor.apply();
System.loadLibrary("jnidispatch"); // load native libary
// Get ID
SharedPreferences sharedPref1 = PreferenceManager.getDefaultSharedPreferences(context);
String data = sharedPref1.getString(MY_ID, null);
Assert.assertEquals(data, TEST_DATA);
}
}
Пример проекта можно скачать здесь.
ОБНОВЛЕНИЕ: В конце концов я обнаружил, что это проблема устройства, проблема возникает только на определенном устройстве, например на устройстве OPPO.