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
                        }
                    }
                }
            }
        }
    }
}
相关推荐
O***P5718 小时前
【MySQL】MySQL内置函数--日期函数字符串函数数学函数其他相关函数
android·mysql·adb
z***43848 小时前
MySQL-mysql zip安装包配置教程
android·mysql·adb
无心水9 小时前
【Python实战进阶】7、Python条件与循环实战详解:从基础语法到高级技巧
android·java·python·python列表推导式·python条件语句·python循环语句·python实战案例
g***789110 小时前
鸿蒙NEXT(五):鸿蒙版React Native架构浅析
android·前端·后端
Bervin1213816 小时前
Flutter Android环境的搭建
android·flutter
e***87701 天前
windows配置永久路由
android·前端·后端
fouryears_234171 天前
现代 Android 后台应用读取剪贴板最佳实践
android·前端·flutter·dart
YF02111 天前
Frida for MacBook/Android 安装配置
android·前端
雨白1 天前
Android实战:构建高可维护的日志系统
android
茄子凉心1 天前
android 开机启动App
android·java·开发语言