Bugly的使用

bugly已经改版了,免费的基础版本,速度很慢,勉强够用,这里大概介绍一下。

1.Android使用bugly

可以参考官网

1.上传符号表

参考bugly官网

上传SO符号表文件
bash 复制代码
cd 上传符号表工具文件夹【才能进下下一步操作】
bash 复制代码
java -jar buglyqq-upload-symbol.jar -appid a278f01047 -appkey 1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86  -version 4.3.0 -platform Android -inputSymbol /Users/lilyxie/Downloads/upload_target/obj/arm64-v8a/libbugly_dumper.so 

注意事项: 找到正确的SO符号表文件位置,暂时通过第八条中的方法找到SO符号表文件

在Android Studio中没有找到ndk和cmake文件夹的情况下,你可以通过以下几种方式查找so文件的符号表:

1. 查找已安装的NDK路径

首先检查你的项目是否配置了NDK:

arduino 复制代码
// 在app模块的build.gradle中查看
android {
    ndkVersion "21.4.7075529" // 如果有指定版本
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
}
2. 通过Android Studio查找NDK路径
  • 方法一:File → Project Structure → SDK Location → Android NDK location

  • 方法二:查看本地文件系统中的默认NDK安装路径:

    • Windows: %USERPROFILE%\AppData\Local\Android\Sdk\ndk
    • Mac: ~/Library/Android/sdk/ndk/
    • Linux: ~/Android/Sdk/ndk/
3. 使用adb命令获取设备上的so文件
bash 复制代码
# 查看应用安装目录下的so文件
adb shell ls -la /data/app/你的应用包名*/lib/arm64/

# 拉取so文件到本地
adb pull /data/app/你的应用包名*/lib/arm64/ libs/
4. 使用readelf查看符号表
bash 复制代码
# 如果有NDK工具链
readelf -s your_library.so

# 或者使用NDK中的readelf
${ANDROID_NDK_HOME}/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-readelf -s your_library.so
5. 使用objdump查看符号表
bash 复制代码
# 使用NDK中的objdump
${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-objdump -T your_library.so
6. 使用nm工具(如果可用)
复制代码
nm -D your_library.so
7. 在线符号表解析工具

如果只有so文件而没有编译环境,可以使用在线工具:

8. 从编译产物中查找

检查项目的以下目录:

  • app/build/intermediates/merged_native_libs/
  • app/build/intermediates/stripped_native_libs/
  • app/build/intermediates/transforms/mergeJniLibs/
9. 配置NDK的替代方案

如果确实没有安装NDK,可以通过以下方式安装:

bash 复制代码
# 使用sdkmanager安装
sdkmanager --install "ndk;21.4.7075529"

# 或在Android Studio中安装
# Tools → SDK Manager → SDK Tools → 勾选NDK

2.上传mapping.txt

bash 复制代码
cd 上传符号表工具文件夹【才能进下下一步操作】
bash 复制代码
java -jar buglyqq-upload-symbol.jar -appid a278f01047 -appkey 1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86  -version 4.3.1 -buildNo 1 -platform Android -inputMapping /Users/temp/app/build/outputs/mapping/r8/release/mapping.txt

产生mapping.txt需要在app/build.gradle设置,才能生产mapping.txt文件

arduino 复制代码
android {
    buildTypes {
        release {
            minifyEnabled true    // 必须为true才会生成mapping
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            // 自定义mapping文件输出路径
            applicationVariants.all { variant ->
                variant.outputs.all { output ->
                    def outputDir = new File("${project.buildDir.absolutePath}/mapping/${variant.name}")
                    variant.assembleProvider.get().doLast {
                        copy {
                            from variant.mappingFile
                            into outputDir
                        }
                    }
                }
            }
        }
    }
}
相关推荐
诸神黄昏EX1 天前
Android Build系列专题【篇四:编译相关语法】
android
雨白1 天前
优雅地处理协程:取消机制深度剖析
android·kotlin
leon_zeng01 天前
更改 Android 应用 ID (ApplicationId) 后遭遇记
android·发布
2501_916007471 天前
iOS 混淆工具链实战,多工具组合完成 IPA 混淆与加固(iOS混淆|IPA加固|无源码混淆|App 防反编译)
android·ios·小程序·https·uni-app·iphone·webview
Jeled1 天前
Retrofit 与 OkHttp 全面解析与实战使用(含封装示例)
android·okhttp·android studio·retrofit
ii_best1 天前
IOS/ 安卓开发工具按键精灵Sys.GetAppList 函数使用指南:轻松获取设备已安装 APP 列表
android·开发语言·ios·编辑器
2501_915909061 天前
iOS 26 文件管理实战,多工具组合下的 App 数据访问与系统日志调试方案
android·ios·小程序·https·uni-app·iphone·webview
limingade1 天前
手机转SIP-手机做中继网关-落地线路对接软交换呼叫中心
android·智能手机·手机转sip·手机做sip中继网关·sip中继
RainbowC01 天前
GapBuffer高效标记管理算法
android·算法
程序员码歌1 天前
豆包Seedream4.0深度体验:p图美化与文生图创作
android·前端·后端