В настоящее время я сталкиваюсь с проблемой получения <meta-data>
тегов из моего файла AndroidManifest, находясь внутри инструментария.Получить метаданные из манифеста в UnitTest
Я использую библиотеку (Sugar ORM), которая хранит важную информацию внутри этих тегов. Как только я использую библиотеку внутри проверяемого кода, я сталкиваюсь с проблемами.
AndroidManifest.xml
<manifest package="org.something" ...>
...
<application ...>
<meta-data android:name="DATABASE" android:value="foo.db" />
...
</application>
</manifest>
Извлечение метаданных работает так:
PackageManager pm = context.getPackageManager();
try {
ApplicationInfo ai = pm.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
value = ai.metaData.getString(name);
} catch (Exception e) {
Log.d("sugar", "Couldn't find config value: " + name);
}
Тест работает как InstrumentationTestCase
и устанавливает контекст быть getInstrumentation().getContext()
.
В чем проблема, с которой вы сталкиваетесь? Вы только что желали, что делаете. – n00bc0der
Я обошел проблему пока, не используя SugarORM больше. Проблема заключалась в том, что библиотека не могла загрузить свои метаданные из файла манифеста. Таким образом, данный код генерирует исключение. – Paul