- Как добавить параметр Stacktrace или debug при создании проекта Android Studio
- 9 ответов
- найти ошибку в android native stack trace
- 1 ответ
- Похожие вопросы:
- c++ — ndk — android native stack trace
- Как развернуть стек, чтобы получить обратную трассировку для указанного указателя стека(SP)? (2)
- Articles of stack trace
- Native Android Crash – недопустимый битмап
- Получение трассировки стека на Android NDK
- Исключение Null в ActionBar
- Выключение потока с неперехваченным исключением: отсутствие трассировки стека
- Трассировка стека Java / Android в уникальные ведра
- Как проверить журнал сбоев с помощью android ndk в cocos2d-x
- Как добавить параметр Stacktrace или debug при создании проекта Android Studio
Как добавить параметр Stacktrace или debug при создании проекта Android Studio
Я пытался исследовать ошибку сборки проекта в выводе консоли следующим образом:
Я подозреваю, что это имеет какое-то отношение к ресурсу не найдена ошибка. Мой вопрос в том, на уровне IDE, как я могу добавить —stacktrace или —debug вариант так, что он сможет произвести больше информации для меня для того чтобы отлаживать?
9 ответов
вы можете использовать GUI, чтобы добавить эти флаги командной строки gradle из
для пользователя MacOS, это здесь
вот так (добавить —stacktrace или —debug )
(обратите внимание, что скриншот до 0.8.10, опция уже нет на Compiler > Gradle раздел, теперь он находится в отдельном разделе с именем Compiler (Gradle-based Android Project) )
на Mac версия Android Studio Beta 1.2 , под
Android Studio->preferences->Build, Execution, Deployment->Compiler
В Android Studios 2.1.1 параметры командной строки находятся в разделе «сборка, выполнение, развертывание»>»компилятор»
чтобы добавить stacktrace нажмите на Gradle в правой части экрана проекта Android;
- нажмите на значок настроек; откроется страница настроек,
- затем нажмите на компилятор
затем добавьте команду —stacktrace или —debug как показано;
запустите приложение еще раз, чтобы получить отчет gradle.
то, что я использую для целей отладки, запускает задачу gradle с stacktrace непосредственно в терминале. Тогда вы не повлияете на ваши обычные компиляции.
из корневого каталога проекта, через терминал вы можете использовать:
для Android Studio 3.1.3 это было под
Файл — > Настройки — > Сборка, Выполнение, Развертывание -> Компилятор
для Android Studio 3.1.3 на Mac, это было под
Android Studio — > Настройки — > Сборка, Выполнение, Развертывание -> Компилятор
и затем, чтобы просмотреть трассировку стека, нажмите эту кнопку
чтобы увеличить максимальную кучу: Нажмите, чтобы открыть Android Studio, посмотрите на фотографии ниже. Шаг за шагом. Android STUDIO v2.1.2
Нажмите, чтобы перейти к настройкам из Настройки или перейти к настройкам файла в верхней части Android Studio.
проверьте также компиляторы android из ссылки, чтобы подтвердить, если он также изменится, если не увеличится до того же размера, который вы изменяете из ссылки компилятора.
Примечание: Вы можете увеличить размер базы на объем памяти и помните, что этот параметр является базой на Android Studio v2.1.2
Источник
найти ошибку в android native stack trace
У меня есть некоторые проблемы с моим приложением.
Моя активность не является нативной активностью, но вызывает нативный код в методе java thread run() (и он будет продолжать работать в течение всего жизненного цикла активности) Иногда действие беззвучно падает (без каких-либо подсказок) ancd возвращается к предыдущей активности моего приложения. Я индагатирую на tracelog, но с помощью ndk-trace только избавляюсь от вызова в libc.so, я вижу в «stack» какой-то вызов моей родной lib, есть способ восстановить некоторые указания на зону, где произошел сбой в моем источнике из стека?
1 ответ
Я разрабатываю приложение, которое выходит из строя в коде NDK с помощью SIG_SEGV. Это приводит к тому, что приложение зависает примерно на 15 секунд, а затем Android предложит мне принудительно закрыть его. Печатается java стек-trace в logcat, но я не вижу никакого стека-trace для NDK. Я.
В Objective-C, всякий раз, когда приложение выходит из строя, я могу получить стек trace, чтобы увидеть, где находится последний метод, который вызывает ошибку, используя этот код в AppDelegate — (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary.
Ладно, я решил проблему.
Это была ошибка в моем перегруженном операторе new, использующем статический элемент, который не был защищен блокировкой, так что, когда объект был удален из моего собственного кода, и в то же время другой объект был удален из потока интерфейса JNI, бум!
Я не нашел никакого полезного способа решить эту проблему из отчетов об ошибках. Чтобы решить эту проблему, я повторил ситуацию в Visual Studio (используя 2 потока и пытаясь вызвать те же методы интерфейса jni, также если они не используются в тестовом проекте visual studio), чтобы получить представление о том, в чем была проблема.
В любом случае в конце я могу опубликовать свое приложение 🙂
Похожие вопросы:
У меня есть приложение Android, которое имеет минимум SDK в 2.1, и я получаю следующий стек trace в консоли разработчика: java.lang.RuntimeException: Unable to start activity.
Я новичок, только начал погружать палец ноги в react-native. Первое приложение hello world действительно работало нормально, когда я запустил второе, я получаю эту ошибку.
Я пытаюсь распечатать журналы на экране. Но это показывает ошибку, которая: Невозможно открыть файл stack trace ‘/data/anr/traces.txt’:отказано в разрешении. Как получить доступ к файлу stack trace?
Я разрабатываю приложение, которое выходит из строя в коде NDK с помощью SIG_SEGV. Это приводит к тому, что приложение зависает примерно на 15 секунд, а затем Android предложит мне принудительно.
В Objective-C, всякий раз, когда приложение выходит из строя, я могу получить стек trace, чтобы увидеть, где находится последний метод, который вызывает ошибку, используя этот код в AppDelegate -.
Я перешел по этой ссылке, чтобы начать работу с react native https://facebook.github.io/реагировать-native/docs/getting-started.html Когда я пытаюсь запустить эту команду react-native run-android в.
Я получаю ошибку на react native при запуске на моем mac react-native run-android Что пошло не так: Возникла проблема с настройкой проекта: app. java.lang.NullPointerException (нет сообщения об.
При запуске react-native выполнения android, я получил эту ошибку : * What went wrong: A problem occurred configuring project ‘:app’. > Could not resolve all dependencies for configuration.
Я обновил свой проект ReactNative с 0.59 до 0.61.2 iOS строится нормально, но в android я столкнулся с проблемой в модуле @react-native-community/cli-platform-android . Мой файл settings.gradle.
Я успешно глоток голосовой вызов с использованием собственного стека протокола SIP android. Но кое-как я не вижу никакой информации о видеозвонке по sip с использованием android native sip stack.
Источник
c++ — ndk — android native stack trace
Как развернуть стек, чтобы получить обратную трассировку для указанного указателя стека(SP)? (2)
Я пишу это для Android (только для ARM), но я считаю, что принцип аналогичен и для родового Linux.
Я пытаюсь захватить трассировку стека из обработчика сигнала, так что я могу зарегистрировать его, когда мое приложение выйдет из строя. Это то, что я придумал с помощью .
Инициализация:
Проблема: если я получаю регистрацию ПК, вызывая _Unwind_GetIP(context) в unwindCallback , я получаю полную трассировку для стека обработчика сигнала . Это отдельный стек, и это явно не то, что я хочу. Поэтому я попытался предоставить ПК, взятый из ucontext в обработчике сигналов, и получил странный результат: я получаю одну запись в стеке, это правильная запись — функция, которая вызвала сигнал в первую очередь. Но он регистрируется дважды (даже адрес тот же, так что это не ошибка поиска символьного имени). Очевидно, что это недостаточно хорошо — мне нужен весь стек. И мне интересно, является ли этот результат просто случайным (т.е. он не должен работать вообще.
Теперь, я прочитал, мне нужно также указать указатель стека, который я, по-видимому, могу получить из ucontext , так же, как ПК. Но я не знаю, что с этим делать. Нужно ли мне вручную _Unwind_Backtrace а не использовать _Unwind_Backtrace ? Если да, можете ли вы дать мне пример кода? Я искал лучшую часть дня и все еще не мог найти ничего, что мог бы скопировать и вставить в мой проект.
Для чего это стоит, вот источник libunwind который содержит определение _Unwind_Backtrace . Думал, что смогу понять что-то, если увижу его источник, но это намного сложнее, чем я ожидал.
Во-первых, вам нужно прочитать раздел «Безопасные асинхронные сигналы»:
Это целый набор функций, которые можно безопасно вызывать в обработчике сигналов. О худшем, что вы можете сделать, — это вызвать все, что вызывает malloc () / free () под капотом, или сделать это самостоятельно.
Во-вторых, сначала запустите его за пределами обработчика сигнала.
В-третьих, это, вероятно, по поводу:
Чтобы получить stacktrace кода, который вызвал SIGSEGV вместо stacktrace обработчика сигнала, вам нужно получить регистры ARM из ucontext_t и использовать их для размотки.
Но с _Unwind_Backtrace() это сложно сделать. Таким образом, если вы используете libc ++ (LLVM STL), лучше попробуйте предварительно скомпилированный libunwind для 32-разрядной ARM, в комплекте с современными Android NDK (в sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libunwind.a ). Вот пример кода.
Я также советую взглянуть на этот мой ответ, который содержит больше кода и больше информации:
Если вы используете libstdc ++ (GNU STL), воспользуйтесь решением Василия Галкина:
, что является тем же самым решением Dar Hoo из другого поста:
Источник
Articles of stack trace
Native Android Crash – недопустимый битмап
Я получаю отчеты о сбоях в консоли разработчика Google с сообщением о прерывании: «Ошибка, невозможно получить доступ к растровому изображению недействительно / бесплатно» здесь! ». Следующая трассировка стека – это все, на что я смог дотянуться. Проблема возникает только на устройствах Android 6.0 (зефир). Я не могу воспроизвести проблему на любом из моих устройств. Пользователи, […]
Получение трассировки стека на Android NDK
Прежде всего: этот вопрос уже задан пару раз, и некоторые ответы полезны, но ни один из них не дает рабочего решения. Я начал с проверки кода из этого ответа . Удивительно, но в этом есть огромная проблема: единственный способ вызвать этот код, о котором я могу думать, это обработчик SIGSEGV , и у него есть […]
Исключение Null в ActionBar
Я получаю эту ошибку во время выполнения. Java.lang.RuntimeException: Невозможно запустить Activity ComponentInfo android.util.AndroidRuntimeException: requestFeature () необходимо вызвать перед добавлением содержимого Трассировки стека: 01-22 04:55:59.728: E/AndroidRuntime(2443): FATAL EXCEPTION: main 01-22 04:55:59.728: E/AndroidRuntime(2443): Process: com.qrme.quranmadeeasy, PID: 2443 01-22 04:55:59.728: E/AndroidRuntime(2443): java.lang.RuntimeException: Unable to start activity ComponentInfo
Выключение потока с неперехваченным исключением: отсутствие трассировки стека
Мое приложение вызывает силовое соединение где-то, но вместо того, чтобы получать FATAL EXCEPTION с обычной (и очень информативной) трассировкой стека в моем LogCat, я получаю только следующие 4 строки: 06-27 07:08:54.546: D/dalvikvm(14351): GC_FOR_MALLOC freed 9923 objects / 657416 bytes in 21ms 06-27 07:08:54.769: W/dalvikvm(14351): threadid=20: thread exiting with uncaught exception (group=0x4001d7f0) 06-27 07:08:54.796: W/dalvikvm(14351): threadid=21: […]
Трассировка стека Java / Android в уникальные ведра
При регистрации стоп-трасс для необработанных исключений в Java или Android (например, через ACRA) вы обычно получаете трассировку стека как простую длинную строку. Теперь все службы, предоставляющие отчеты и анализ сбоев (например, Google Play Developer Console, Crashlytics), группируют эти трассировки стека в уникальные ведра. Это, безусловно, полезно – иначе вы могли бы иметь десятки тысяч отчетов […]
Как проверить журнал сбоев с помощью android ndk в cocos2d-x
Я использую cocos2d-x для разработки игры, после того как она отлично работает в iOS, я перехожу на платформу Android. Но он запускается где-то в android, и я получаю только сообщение об ошибке: 08-26 10:49:23.823: A/libc(2884): Fatal signal 11 (SIGSEGV) at 0x0000000c (code=1), thread 2917 (Thread-285) При этом я не могу исправить журнал сбоев. Итак, мой […]
Источник
Как добавить параметр Stacktrace или debug при создании проекта Android Studio
Я пытался исследовать ошибку сборки проекта в консольном выпуске следующим образом:
Я подозреваю, что это связано с не найденной ошибкой ресурса. Мой вопрос: на уровне IDE я могу добавить параметр —stacktrace или —debug чтобы он мог создавать дополнительную информацию для отладки?
Вы можете использовать графический интерфейс для добавления этих флагов командной строки gradle из
(Обратите внимание, что снимок экрана до 0,8.10, этот параметр больше не находится в разделе « Compiler > Gradle », теперь он находится в отдельном разделе « Compiler (Gradle-based Android Project) )
В Mac версии Android Studio Beta 1.2 она находится под
Android Studio->preferences->Build, Execution, Deployment->Compiler
В Android Studios 2.1.1 параметры командной строки находятся в разделе «Сборка, выполнение, развертывание»> «Компилятор»,
Чтобы добавить стек, щелкните на Gradle в правой части экрана проекта Android;
- Нажмите на значок настроек; Это откроет страницу настроек,
- Затем нажмите на компилятор
Затем добавьте команду —stacktrace или —debug как показано;
Запустите приложение еще раз, чтобы получить отчет о градиенте.
Чтобы увеличить максимальную кучу: нажмите, чтобы открыть свою Android-студию, посмотрите ниже рисунки. Шаг за шагом. ANDROID STUDIO v2.1.2
Нажмите, чтобы перейти к настройкам с Настроить или перейти к настройкам FILE в верхней части Android Studio.
Проверьте также компиляторы android из ссылки, чтобы подтвердить, изменится ли она, если она не увеличивается до того же размера, который вы изменяете из ссылки компилятора.
Примечание. Вы можете увеличить размер базы на своей памяти и помнить, что этот параметр основан на Android Studio v2.1.2
Источник