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
                        }
                    }
                }
            }
        }
    }
}
相关推荐
爱勇宝5 小时前
我做了一个只用来搜歌词的小 App
android·前端·后端
众少成多积小致巨8 小时前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
Coffeeee15 小时前
如何使用Glide和Coil加载WebP动图
android·kotlin·glide
Kapaseker15 小时前
5 分钟搞懂 Kotlin DSL
android·kotlin
恋猫de小郭16 小时前
AI Agent 开发究竟是啥?如何用 AI 开发 Agent ?深入浅出给你一套概念
android·前端·ai编程
黄林晴16 小时前
Android 17 正式发布!target 37 一大批旧代码直接不能用了
android
Carson带你学Android16 小时前
Android 17 正式发布:AI 终于成了系统能力
android·前端·ai编程
三少爷的鞋17 小时前
当 UseCase 开始长期监听,它可能已经不是 UseCase 了
android
恋猫de小郭1 天前
Android 限制侧载新进展,谷歌联合国内厂商推验证计划
android·前端·flutter
恋猫de小郭1 天前
解读 Android 17 全新内存限制,有没有“豁免”后门?
android·前端·flutter