В большинстве случаев приложение не запускается из-за сбоя Диспетчера тегов. Я получаю много трассировок стека ошибок при загрузке контейнеров. Вот 3 случая, когда Диспетчер тегов заставляет приложение зависнуть еще до запуска:
1) PackageManager﹕ Пакет с именем «com.company.myapp.dev.debug» не существует.
2) InstalledAppDetails﹕ Исключение при получении пакета: com.company.myapp.dev.debug
android.content.pm.PackageManager$NameNotFoundException:
3) StrictMode﹕ нарушение политики StrictMode; ~ продолжительность = 270 мс: android.os.StrictMode $ StrictModeDiskReadViolation: policy = 31 нарушение = 2
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1137)
Есть ли способ предотвратить это? Почему это происходит?
У меня есть TagManger, разделенный на синглтон, вот код для инициализации:
public void init(final Activity context)
{
this.tagManager = TagManager.getInstance(context);
tagManager.setVerboseLoggingEnabled(true);
PendingResult<ContainerHolder> pendingResult =
tagManager.loadContainerPreferNonDefault(
context.getString(R.string.gtm_container_id),
R.raw.gtm_default_container);
pendingResult.setResultCallback(new ResultCallback<ContainerHolder>()
{
@Override public void onResult(ContainerHolder containerHolder)
{
setContainerHolder(containerHolder);
containerHolder.getContainer();
if (!containerHolder.getStatus().isSuccess()) {
Log.e(TAG, "Failed to load container.");
// return;
} else {
setContainerHolder(containerHolder);
containerHolder.setContainerAvailableListener(new ContainerLoadedCallback());
}
pushEnvironment();
launchApp(context);
}
}, 2, TimeUnit.SECONDS);
}
Это почти то же самое, что и пример CuteAnimals.