Git Product home page Git Product logo

Comments (11)

dodola avatar dodola commented on August 19, 2024

@wl9739 请问一下是x86的模拟器么?

from chapter01.

wl9739 avatar wl9739 commented on August 19, 2024

@dodola 是 x86 的模拟器。代码里面把 x86 的 ndk 支持注释掉了,我取消了注释,然后在 x86 的模拟器上面跑的。

from chapter01.

dodola avatar dodola commented on August 19, 2024

@wl9739 在 x86 模拟器下无法生成日志的解决方法如下:

  1. 将 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
  2. 在 Androidstudio 里设置 ndk 路径为ndk-16b的路径
  3. 在 sample 和 breakpad-build 的 build.gradle 配置里增加如下配置
 externalNativeBuild {
            cmake {
                cppFlags "-std=c++11"
                arguments "-DANDROID_TOOLCHAIN=gcc"
            }
        }

from chapter01.

dodola avatar dodola commented on August 19, 2024

@wl9739 这个问题是因为 clang 的 bug 导致的,在对 linux syscall 的编译支持上 对sys_prctl 这个方法的编译里一个 ebi 指令的偏移出现错误(猜测如此),后面我会分析一下,现在只能暂时切换到gcc 上进行编译

from chapter01.

dodola avatar dodola commented on August 19, 2024

@wl9739 所以例子里去掉了x86 ,不是说不支持哈

from chapter01.

wl9739 avatar wl9739 commented on August 19, 2024

@wl9739 谢谢,问题解决了,能导出崩溃日志了!

from chapter01.

shjborage avatar shjborage commented on August 19, 2024

我这边遇到 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.

wl9739 avatar wl9739 commented on August 19, 2024

@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.

shjborage avatar shjborage commented on August 19, 2024

from chapter01.

shjborage avatar shjborage commented on August 19, 2024

@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.

ZJLeBron avatar ZJLeBron commented on August 19, 2024

@wl9739 谢谢,问题解决了,能导出崩溃日志了!

请问你真机上边怎么搞定的,我真机上边没有日志文件

from chapter01.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.