Comments (11)
@wl9739 请问一下是x86的模拟器么?
from chapter01.
@dodola 是 x86 的模拟器。代码里面把 x86 的 ndk 支持注释掉了,我取消了注释,然后在 x86 的模拟器上面跑的。
from chapter01.
@wl9739 在 x86 模拟器下无法生成日志的解决方法如下:
- 将 ndk 切换到 16b,下载地址: https://developer.android.com/ndk/downloads/older_releases?hl=zh-cn
mac 版:https://dl.google.com/android/repository/android-ndk-r16b-darwin-x86_64.zip - 在 Androidstudio 里设置 ndk 路径为ndk-16b的路径
- 在 sample 和 breakpad-build 的 build.gradle 配置里增加如下配置
externalNativeBuild {
cmake {
cppFlags "-std=c++11"
arguments "-DANDROID_TOOLCHAIN=gcc"
}
}
from chapter01.
@wl9739 这个问题是因为 clang 的 bug 导致的,在对 linux syscall 的编译支持上 对sys_prctl 这个方法的编译里一个 ebi 指令的偏移出现错误(猜测如此),后面我会分析一下,现在只能暂时切换到gcc 上进行编译
from chapter01.
@wl9739 所以例子里去掉了x86 ,不是说不支持哈
from chapter01.
@wl9739 谢谢,问题解决了,能导出崩溃日志了!
from chapter01.
我这边遇到 Smartisan DE106(Android 8.1.0, API 27) ,在 classDump 里也没找到日志,辛苦帮忙看下。
尝试 x86 的这个方法,但没成功:
externalNativeBuild {
cmake {
cppFlags "-std=c++11"
arguments "-DANDROID_TOOLCHAIN=gcc"
}
}
这个在 sample 中加了,但在 breakpad-build 中加的时候编译报错,找不到这些定义。
Could not find method cppFlags() for arguments [-std=c++11] on object of type
只在 sample 里加上再重新试了点 Crash 按钮,但还是没找到崩溃文件。
from chapter01.
@shjborage externalNativeBuild
的作用域有两个,分别是在 android{}
和 defaultConfig()
里面。
在 breakpad-build
的 gradle 文件中增加的配置其实是在 defaultConfig{}
里的,也就是说,breakpad-build
模块的完整 gradle 文件代码应该是像下面这样的:
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 14
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86"
}
externalNativeBuild {
cmake {
cppFlags "-std=c++11"
arguments "-DANDROID_TOOLCHAIN=gcc"
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
注意有两个 externalNativeBuild
配置。
from chapter01.
from chapter01.
@wl9739 我按您说的试了下,还是没有生成崩溃信息文件。是否与机型或版本有关? 我在 /sdcard/crashDump
下什么也没发现。点了挺多次 Crash,也尝试删除 APP,重新安装。
trident:/sdcard/crashDump $ ls -al
total 16
drwxrwx--x 2 root sdcard_rw 4096 2018-12-03 20:22 .
drwxrwx--x 228 root sdcard_rw 12288 2018-12-04 09:41 ..
from chapter01.
@wl9739 谢谢,问题解决了,能导出崩溃日志了!
请问你真机上边怎么搞定的,我真机上边没有日志文件
from chapter01.
Related Issues (20)
- 用minidump_stackwalk分析dmp文件失败
- 帮助大家解决在 Mac 上面 Symbol not found 的问题
- 使用 arm-linux-androideabi-addr2line 解析 log 时遇到 显示 ?? ??:0 的问题 HOT 2
- dumpcallback 无法回调java函数 HOT 1
- Breakpad 抓取闪退信息后执行DumpCallback后就马上闪退了,怎么和java log 当时堆栈关联起来?
- 关于break-build这个module怎么来?
- 在生成crashlog.txt 的时候会有如下错误,但不影响log生成以及分析 HOT 1
- 无法将dmp文件解析成txt HOT 2
- 关于 breakpad 构建的一些疑问 HOT 1
- 关于非mac平台解析崩溃的办法 求教 HOT 1
- 项目无法运行 HOT 3
- mac(m1)抓取到nump文件之后使用minidump_stalkwalk分析堆栈信息失败 HOT 1
- minidump_stackwalk 运行报错 HOT 1
- couldn't find "libbreakpad-core.so" HOT 2
- 无法 dump crash 文件 HOT 8
- 生成的dmp文件,在window上用windbg 软件打不开
- 华为真机8.0 crashDump 无 crash 日志 HOT 4
- 生成的dmp文件,转成txt文件是空的 HOT 1
- 模拟器上运行无dump文件,更换了ndk-16b出现以下错误 HOT 3
- Symbol not found HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chapter01.