当 App 崩溃的时,把崩溃信息保存到本地的同时,自动给 GitHub 提交崩溃 issue。

LogReport是一款能够在App崩溃时自动收集崩溃信息并上传至GitHub或自定义服务器的工具。支持邮件、HTTP上传等多种方式,具备日志加密、自定义缓存大小等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LogReport

项目地址: wenmingvs/LogReport
简介:当 App 崩溃的时,把崩溃信息保存到本地的同时,自动给 GitHub 提交崩溃 issue。


另外,崩溃信息支持邮件上传和 HTTP 上传,自动提交到 issue 使用的是邮件上传的方式。如果你拥有私人服务器,你也可以使用 HTTP 上传。

当 App 崩溃的时,把崩溃信息保存到本地的同时,自动给 GitHub 提交崩溃 issue,你只需要几句,就能完成所有配置,更多细节请了解下方

另外,崩溃信息支持邮件上传和 HTTP 上传,自动提交到 issue 使用的是邮件上传的方式。如果你拥有私人服务器,你也可以使用 HTTP 上传

enter image description here

特性介绍

特性简介
自定义日志保存路径默认保存在 Android/data/com.xxxx.xxxx/log 中
自定义日志缓存大小默认大小为 30M,超出后会自动清空文件夹
支持多种上传方式目前支持邮件上传与 HTTP 上传,会一并把文件夹下的所有日志打成压缩包作为附件上传
日志加密保存提供 AES,DES 两种加密解密方式支持,默认不加密
日志按天保存目前崩溃日志和 Log 信息是按天保存,你可以继承接口来实现更多的保存样式
携带设备与 OS 信息在创建日志的时候,会一并记录 OS 版本号,App 版本,手机型号等信息,方便还原崩溃
自定义日志上传的时机默认只在 Wifi 状态下上传支持,也支持在 Wifi 和移动网络下上传
支持保存 Log 日志在打印 Log 的同时,把 Log 写入到本地(保存的时候会附带线程名称,线程 id,打印时间),还原用户操作路径,为修复崩溃提供更多细节信息
GitHub 自动提交 issue使用邮件发送的形式,把接受崩溃日志的邮箱和 GitHub 特定的开源项目绑定在一起即可,更多细节请看下面介绍

依赖添加

在你的项目根目录下的 build.gradle 文件中加入依赖

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

添加依赖

dependencies {
    compile 'com.github.wenmingvs:LogReport:1.0.3'
}

初始化

在自定义 Application 文件加入以下几行代码即可,默认使用 email 发送。如果您只需要在本地存储崩溃信息,不需要发送出去,请把 initEmailReport()删掉即可。

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        initCrashReport();
    }

    private void initCrashReport() {
        LogReport.getInstance()
                .setCacheSize(30 * 1024 * 1024)//支持设置缓存大小,超出后清空
                .setLogDir(getApplicationContext(), "sdcard/" + this.getString(this.getApplicationInfo().labelRes) + "/")//定义路径为:sdcard/[app name]/
                .setWifiOnly(true)//设置只在 Wifi 状态下上传,设置为 false 为 Wifi 和移动网络都上传
                .setLogSaver(new CrashWriter(getApplicationContext()))//支持自定义保存崩溃信息的样式
                //.setEncryption(new AESEncode()) //支持日志到 AES 加密或者 DES 加密,默认不开启
                .init(getApplicationContext());
        initEmailReporter();
    }

    /**
     * 使用 EMAIL 发送日志
     */
    private void initEmailReporter() {
        EmailReporter email = new EmailReporter(this);
        email.setReceiver("wenmingvs@gmail.com");//收件人
        email.setSender("wenmingvs@163.com");//发送人邮箱
        email.setSendPassword("apptest1234");//邮箱的客户端授权码,注意不是邮箱密码
        email.setSMTPHost("smtp.163.com");//SMTP 地址
        email.setPort("465");//SMTP 端口
        LogReport.getInstance().setUploadType(email);
    }
}

上传

在任意地方,调用以下方法即可,崩溃发生后,会在下一次 App 启动的时候使用 Service 异步打包日志,然后上传日志,发送成功与否,Service 都会自动退出释放内存

LogReport.getInstance().upload(context);

发往服务器

如果您有自己的服务器,想往服务器发送本地保存的日志文件,而不是通过邮箱发送。请使用以下方法替换 initEmailReporter 方法


    /**
     * 使用 HTTP 发送日志
     */
    private void initHttpReporter() {
        HttpReporter http = new HttpReporter(this);
        http.setUrl("http://crashreport.jd-app.com/your_receiver");//发送请求的地址
        http.setFileParam("fileName");//文件的参数名
        http.setToParam("to");//收件人参数名
        http.setTo("你的接收邮箱");//收件人
        http.setTitleParam("subject");//标题
        http.setBodyParam("message");//内容
        LogReport.getInstance().setUploadType(http);
    }

保存 Log 到本地

使用以下方法,打印 Log 的同时,把 Log 信息保存到本地(保存的时候会附带线程名称,线程 id,打印时间),并且随同崩溃日志一起,发送到特定的邮箱或者服务器上。帮助开发者还原用户的操作路径,更好的分析崩溃产生的原因

LogWriter.writeLog("wenming", "打 Log 测试!!!!");

关于使用邮件上传的注意事项

  • 强烈建议使用 163 邮箱作为发送崩溃的邮箱,并且此邮箱务必要开启 SMTP 服务,如下图所示,才能发送邮件成功! enter image description here
  • 邮箱的密码,请输入 163 邮箱的客户端授权码,而不要输入邮箱的登录密码
  • 请不要使用 QQ 邮箱作为发件人的邮箱,因为 QQ 邮箱的多重验证原因,并不支持这种形式的邮件发送
  • 如果你需要自动提交崩溃日志到 GitHub 中,您需要使用 Gmail 邮箱作为收件人邮箱
  • 提供以下测试邮箱给大家体验,此邮箱可以发送邮箱
    测试帐号
    帐号:wenmingvs@163.com
    登录密码:apptest123
    客户端授权码:apptest1234

GitHub 自动提交 issue 的配置

请保证崩溃日志的邮件能到达您设定的 Gmail 邮箱中。如下图所示,才继续下去 enter image description here

通过发送邮件来创建 issue,在没有 GitHub API 的支持下,是不可能实现的。但是我们可以通过一些已经得到 GitHub 授权的第三方应用来实现。通过设置邮件监听,一旦邮箱收到了包含特定关键字的邮件,就会读取邮件的内容和标题,自动帮你提交 issue。我们需要做的,就是把邮箱和 GitHub 的开源项目绑定起来,设置触发器即可,每次新邮件到达的时候,会检查此邮件是否满足触发器要求,如果满足,就会帮你自动提交 issue。

快速教程

  1. 首先去注册一个帐号,如下图所示 链接
    enter image description here
  2. 绑定 Gmail 邮箱,设置监听的邮件的类型,我们选择 unread,即监听所有未读邮件(后面可以再根据个人要求修改) enter image description here
  3. 绑定 GitHub
  4. 设置创建 issue 的样式,在 3 个输入框中指定以下内容 指定在哪个项目下创建 issue issue 的标题与邮件的标题相同 issue 的内容和邮件的内容相同 enter image description here
  5. 设定成功!!
    enter image description here
  6. 进入个人面板管理链接,面板管理的 Home 标题下的每一个框框,都代表一个触发器,其中每个触发器都绑定了一个 GitHub 的开源项目
    enter image description here

后面我们还需要调整一下触发器,点击触发器的 Edit,进入下面界面,做如下设置

  1. 设定监听的邮件类型为 New Email Matching Search enter image description here
  2. 设定按照邮件的标题,对邮件做进一步筛选。设定的 subject:LogReport,意思是对标题包含有 LogReport 关键字的邮件做捕获。通过设定不同的关键字,我们就可以给不同的 GitHub 上的开源项目提交 issue 了 enter image description here
  3. 对触发的动作做指示。我们需要自动提交 issue,所以应该按照以下来设定,不再赘述了,看图: enter image description here enter image description here

  4. 最后,我们返回到个人面板,如果触发器如下图所示是 On 状态,说明已经启动了!至此,自动提交崩溃 issue 的配置就完成了
    enter image description here

最后附上我的测试帐号,大家可以根据我的触发器的配置作为参考~
帐号:wenmingvs@163.com
密码:apptest1234

Gradle 构建

  • 版本
    • 最新 Android SDK
    • 最新 Gradle
  • 环境变量
    • ANDROID_HOME
    • GRADLE_HOME,同时把 bin 放入 path 变量
    • Android SDK 安装,都更新到最新
    • Android SDK Build-tools 更新到最新
    • Google Repository 更新到最新
    • Android Support Repository 更新到最新
    • Android Support Library 更新到最新

相信未来

当蜘蛛网无情地查封了我的炉台
当灰烬的余烟叹息着贫困的悲哀
我依然固执地铺平失望的灰烬
用美丽的雪花写下:相信未来

当我的紫葡萄化为深秋的露水
当我的鲜花依偎在别人的情怀
我依然固执地用凝霜的枯藤
在凄凉的大地上写下:相信未来

我要用手指那涌向天边的排浪
我要用手掌那托住太阳的大海
摇曳着曙光那枝温暖漂亮的笔杆
用孩子的笔体写下:相信未来

我之所以坚定地相信未来
是我相信未来人们的眼睛
她有拨开历史风尘的睫毛
她有看透岁月篇章的瞳孔

不管人们对于我们腐烂的皮肉
那些迷途的惆怅、失败的苦痛
是寄予感动的热泪、深切的同情
还是给以轻蔑的微笑、辛辣的嘲讽

我坚信人们对于我们的脊骨
那无数次的探索、迷途、失败和成功
一定会给予热情、客观、公正的评定
是的,我焦急地等待着他们的评定

朋友,坚定地相信未来吧
相信不屈不挠的努力
相信战胜死亡的年轻
相信未来、热爱生命

<think>我们正在处理用户关于GIS4WRF插件导致QGIS崩溃并被禁用的问题。根据用户供的引用信息,GIS4WRF是一个用于WRF模型工作流程的QGIS插件。用户遇到的问题是使用该插件QGIS崩溃,导致插件被禁用,需要解决方法。 首先,我们需要分析可能导致崩溃的原因: 1. 插件与QGIS版本不兼容。 2. 系统环境问题(如缺少依赖库)。 3. 插件配置错误(如WRF路径设置问题)。 4. 内存不足或硬件资源问题。 5. 插件本身的bug。 根据引用[4]到,需要安装最新版本的QGIS 3,并确保下载了预构建的WRF程序(WRF-CMake)。因此,我们应首先检查版本兼容性。 解决步骤: 1. **检查QGIS版本**:确保用户使用的是QGIS 3的最新稳定版本。旧版本QGIS可能不支持插件的最新功能,或者存在已知的兼容性问题。 2. **更新GIS4WRF插件**:在QGIS插件管理器中,检查GIS4WRF是否有更新版本,并更新到最新版本。 3. **检查系统依赖**:GIS4WRF依赖于WRF-CMake预构建程序。引用[4]到需要下载并配置WRF-CMake。如果配置不正确,可能导致崩溃。确保WRF-CMake的路径在插件设置中正确配置。 4. **检查内存和硬件**:WRF模拟通常需要大量内存。如果用户在处理大型数据集,可能导致内存溢出。建议增加可用内存或减少数据规模。 5. **查看错误日志**:QGIS崩溃通常会生成错误日志。通过日志可以定位问题原因。日志位置通常位于: - Windows: `C:\Users\<用户名>\AppData\Local\QGIS\QGIS3\profiles\default\logs` - Linux: `~/.local/share/QGIS/QGIS3/profiles/default/logs` - macOS: `~/Library/Application Support/QGIS/QGIS3/profiles/default/logs` 6. **重新安装插件**:如果上述步骤无效,尝试完全卸载GIS4WRF插件,然后重新安装。 7. **报告问题**:如果问题仍然存在,可能是插件本身的bug。用户可以在GIS4WRF的GitHub仓库(https://github.com/GIS4WRF/gis4wrf)提交issue,包括详细的重现步骤和错误日志。 此外,引用[1]供了QGIS安装的指导,如果用户QGIS本身安装有问题,也可能导致插件崩溃。建议用户确保QGIS安装正确。 总结解决方法: - 更新QGIS和插件到最新版本。 - 正确配置WRF-CMake路径。 - 检查系统资源(内存)。 - 查看错误日志定位问题。 - 重新安装插件或QGIS。 - 联系插件开发者。 相关问题: 1. GIS4WRF插件安装的具体步骤是什么? 2. 如何配置GIS4WRF插件的WRF路径? 3. QGIS崩溃后如何查看错误日志?</think>### GIS4WRF插件导致QGIS崩溃的解决方法 当GIS4WRF插件导致QGIS崩溃并被禁用,可按以下步骤排查解决: #### 1. **检查版本兼容性** - **更新QGIS**:确保使用最新版QGIS(当前稳定版为QGIS 3.28+),旧版本可能不兼容插件[^1][^4]。 - **更新插件**:在QGIS菜单栏选择 `插件 → 管理并安装插件`,检查GIS4WRF是否为最新版(当前最新版为0.14.4+)。 - **关键示**:GIS4WRF要求Python 3.7+环境,若系统存在多版本Python可能引发冲突[^4]。 #### 2. **重置插件配置** ```python # 通过QGIS Python控制台重置插件(需重启QGIS) from qgis.utils import iface iface.pluginManager().unloadPlugin("gis4wrf") iface.pluginManager().reloadPlugin("gis4wrf") ``` - 若仍崩溃,手动删除配置文件: - **Windows**: `C:\Users\<用户名>\AppData\Roaming\QGIS\QGIS3\profiles\default\gis4wrf` - **macOS/Linux**: `~/.local/share/QGIS/QGIS3/profiles/default/gis4wrf` #### 3. **验证WRF依赖** GIS4WRF需要正确配置WRF-CMake预编译库: - 下载预编译WRF:从[WRF-CMake官网](https://wrf-cmake.github.io)获取对应操作系统的二进制文件[^4]。 - 在插件设置中指定路径:`GIS4WRF → Configuration → Set WRF/WPS Path` → 选择解压后的WRF目录。 #### 4. **排查内存与资源问题** - WRF模拟需大量内存,若处理大型数据集: - 减少嵌套网格层数或缩小模拟区域 - 关闭其他占用内存的应用程序 - 确保系统满足最低要求:8GB RAM(推荐16GB+)[^2][^4] #### 5. **诊断错误日志** 崩溃后查看日志定位原因: - **日志路径**: - Windows: `控制面板 → 系统和安全 → 查看事件日志 → 应用程序 → QGIS错误事件` - macOS/Linux: 终端运行 `qgis --noplugins 2> qgis_crash.log` - **常见错误**: - `DLL load failed`:缺少Microsoft Visual C++运行库(安装VC_redist.x64.exe) - `GLib-GIO-CRITICAL`:显卡驱动问题(更新显卡驱动) #### 6. **重装与替代方案** - **完全重装**: 1. 卸载GIS4WRF插件 2. 手动删除残留目录(见步骤2路径) 3. 重启QGIS后重新安装 - **替代工具**: - 预处理:QGIS内置GDAL工具或WRF官方ARWpost - 可视化:使用NcView或Panoply > **重要示**:若以上步骤无效,建议在[GIS4WRF GitHub仓库提交Issue](https://github.com/GIS4WRF/gis4wrf/issues),需包含QGIS版本、操作系统版本及错误日志截图[^2][^4]。 --- ### 相关问题 1. 如何为GIS4WRF插件正确配置WRF-CMake路径? 2. GIS4WRF运行WRF模拟的最低硬件要求是什么? 3. 除了GIS4WRF,还有哪些QGIS插件可用于气象数据处理? [^1]: QGIS安装指南详见官方下载页面 [^2]: GIS4WRF的跨平台支持与功能概述 [^3]: 嵌套网格配置与namelist.wps生成方法 [^4]: GIS4WRF安装配置及案例应用说明
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值