я думаю в этом проблема
Небольшая предыстория
Traceview — это графическое средство просмотра журналов выполнения, которые вы создаете с помощью класса Debug для регистрации информации трассировки в своем коде. Traceview может помочь вам отладить ваше приложение и профилировать его производительность. При его включении создается файл .trace
в корневой папке SD-карты, который затем может быть извлечен ADB и обработан файлом bat для обработки traceview. Он также может быть добавлен DDMS.
Это система, используемая внутри регистратора. В общем, если вы не используете traceview для извлечения файла трассировки, эта ошибка не должна вас беспокоить. Вам следует просмотреть ошибки/журналы, непосредственно связанные с вашим приложением.
Как его включить:
Существует два способа создания журналов трассировки:
Включите класс Debug в свой код и вызовите его методы, такие как startMethodTracing()
и stopMethodTracing()
, чтобы запустить и остановить запись информации трассировки на диск. Этот параметр очень точен, потому что вы можете указать, где именно начинать и останавливать регистрацию данных трассировки в вашем коде.
Используйте функцию профилирования методов DDMS для создания журналов трассировки. Этот вариант менее точен, поскольку вы не изменяете код, а указываете, когда начинать и останавливать регистрацию с помощью DDMS. Хотя у вас меньше контроля над тем, где именно начинается и где останавливается ведение журнала, этот параметр полезен, если у вас нет доступа к коду приложения или если вам не требуется точное время ведения журнала.
Но для вышеуказанного существуют следующие ограничения
Если вы используете класс Debug, ваше приложение должно иметь разрешение на запись во внешнее хранилище (WRITE_EXTERNAL_STORAGE
).
Если вы используете DDMS: устройства Android 2.1 и более ранних версий должны иметь SD-карту, и ваше приложение должно иметь разрешение на запись на SD-карту. Для устройств Android 2.2 и более поздних версий SD-карта не требуется. Файлы журнала трассировки передаются непосредственно на ваш компьютер для разработки.
Таким образом, доступ к traceFile требует двух вещей:
1.) Разрешение на запись файла журнала трассировки, т.е. WRITE_EXTERNAL_STORAGE
и READ_EXTERNAL_STORAGE
на всякий случай
2.) Эмулятор с прикрепленной SD-картой с достаточным пространством. В документе не сказано, предназначено ли это только для DDMS, но также и для отладки, поэтому я предполагаю, что это верно и для отладки через приложение.
Что делать с этой ошибкой:
Теперь ошибка, по сути, связана с отсутствием пути к SD-карте для создания файла трассировки или отсутствием разрешения на доступ к нему. Это старая ветка, но разработчик, стоящий за наградой, проверьте, соблюдаются ли два предварительных условия. Затем вы можете найти файл .trace
в папке SD-карты вашего эмулятора. Если он существует, он не должен доставлять вам этой проблемы, если он не пытается создать его, добавляя startMethodTracing
в ваше приложение.
Я не уверен, почему он автоматически ищет этот файл, когда срабатывает регистратор. Я думаю когда происходит событие ошибки/журнала, регистратор внутренне пытается записать в файл трассировки и не находит его, и в этом случае он выдает ошибку. Просматривая документы, я не нашел слишком много ссылок на то, почему это происходит автоматически на. Но в целом это не влияет на вас напрямую, вы должны проверять логи/ошибки приложений напрямую. Кроме того, для устройств Android 2.2 и более поздних версий не требуется SD-карта для ведения журнала трассировки DDMS. Файлы журнала трассировки передаются непосредственно на ваш компьютер для разработки.
Дополнительная информация о Traceview:
Копирование файлов трассировки на хост-компьютер
После запуска приложения и создания системой файлов трассировки .trace на устройстве или эмуляторе вы должны скопировать эти файлы на компьютер для разработки. Вы можете использовать adb pull для копирования файлов. Вот пример, показывающий, как скопировать пример файла calc.trace из расположения по умолчанию на эмуляторе в каталог /tmp на хост-компьютере эмулятора:
adb pull /sdcard/calc.trace /tmp Просмотр файлов трассировки в Traceview Чтобы запустить Traceview и просмотреть файлы трассировки, введите traceview . Например, чтобы запустить Traceview для файлов примеров, скопированных в предыдущем разделе, используйте:
traceview /tmp/calc Примечание. Если вы пытаетесь просмотреть журналы трассировки приложения, созданного с включенным ProGuard (сборка в режиме выпуска), имена некоторых методов и членов могут быть запутаны. Вы можете использовать файл Mapping.txt Proguard, чтобы выяснить исходные незашифрованные имена. Дополнительные сведения об этом файле см. в документации Proguard.
Я думаю, что любой другой ответ относительно позиционирования операторов oncreate
или удаления uses-sdk
не имеет отношения, но это Android, и я могу ошибаться. Было бы полезно перенаправить этот вопрос инженеру Android или опубликовать его как ошибку.
Дополнительные сведения см. в документах.
person
Vrashabh Irde
schedule
21.04.2015