Android Studio flutter关于GradleException和NonNull报错的问题

2023-05-16

Android Studio flutter关于GradleException和NonNull报错的问题

  • 问题描述
    • build.gradle的报错
    • NonNull的报错
  • 问题追踪及尝试解决
  • 解决方案
    • (方案一)暴力解决
    • (方案二)优雅忽略
    • (方案三)心理清洁
    • (方案四)正式解决
    • 原创,转载需注明出处

问题描述

Android Studio代码飘红,缺运行正常,但是这简直是不可忍受的

build.gradle的报错

在Android Studio新建Flutter项目的时候,建立完成后,再/android/app/build.gradle中会有一段报错,让我看起来很不爽
在这里插入图片描述

NonNull的报错

同时再/android/app/src/main/java下的文件夹中,初始生成的MainAvtivity.java文件也会报错
在这里插入图片描述
提示是androidx.annotation包没有找到NonNull这个包

问题追踪及尝试解决

收i先查看Android sdk里自带的包,果不其然在Android Api里还真没有这个包
在这里插入图片描述
接着想到从外部导入包,既然没有包那自然就可以引入包。于是我在android/app/build.gradle尝试引入了包
implementation ‘androidx.annotation:annotation:1.1.0’(注意不是andriod/build.gradle
在这里插入图片描述
但是居然没有提示我sync,在这一我感受到了一点不对劲。这时候我注意到了这个
在这里插入图片描述
点开发现是一个内部嵌套的安卓项目,在安卓项目中重新索引之后有了,在安卓项目中并不报错

在这里插入图片描述
在这里插入图片描述
在android原生中一切正常,这个jar包,就是上面implementation里引入的包。那么问题应该是flutter的插件问题,是flutter插件的bug,会报错,实际上并没有任何错误

在对比flutter项目和原生项目引入的库的时候发现了不一样的地方
原生:
原生项目
flutter项目:
flutter项目
也就是说flutter项目没有引进gradle的库,所以gradle的东西会报错,那既然已经追踪到问题,解决起来就好办了,详情请看方案四

解决方案

(方案一)暴力解决

优点:迅速,准确,强迫症表示非常舒服
缺点:自己体会吧

  • 把new GradleException改成new Exception
  • 删掉@NonNull注解,以及对应引入的包

(方案二)优雅忽略

优点:清净
缺点:自己体会

  1. 关闭现在打开的android/…里的所有出错的文件
  2. 重启Android Studio
  3. 不再打开有问题的文件,专注于lib文件夹
  4. 没有红色出现了

(方案三)心理清洁

优点:我没发现优点
缺点:。。。
根据上面的问题探索,明白了不是软件,或者是代码的问题,是flutter插件的bug,感觉非常舒服,也就不会在意红色波浪线了

(方案四)正式解决

优点:的确解决了问题
缺点:比较耗时间
原因已经查明是flutter项目初始化的时候没有导入graddle的库导致的,下面就是引入graddle的库和Nonull的jar包

  1. 用Android Studio打开flutter项目内部嵌套的android原生项目(就是以project打开的/android文件夹),并等待加载包和索引完成
  2. 下拉找到External Libraries,找到上面提到的包,右键属性在这里插入图片描述
  3. 选择Libraries Properties查看文件路径,比如我新引入的包的位置C:\Users\86198\.gradle\caches\modules-2\files-2.1\androidx.annotation\annotation\1.1.0\e3a6fb2f40e3a3842e6b7472628ba4ce416ea4c8(好复杂的位置。。。)提示:这样可以赋复制地址,点击加号后出现了地址在这里插入图片描述
  4. 在flutter项目中打开Project Structure,选中Libraries
  5. 添加选择Java,然后输入刚才查看的地址,引入包的时候两个项目都要选(其实只要选安卓的项目就好了,如果能分出来的话)在这里插入图片描述
  6. 添加后选择apply应用,确定
  7. 添加完成,对应的java文件报错消失了在这里插入图片描述
    至于build.gradle( ̄︶ ̄)↗ 我坦白,没找到怎么去掉红色波浪线

    不过看继承关系改成RuntimeException可以暂时用一用,后续找到办法,我会再补充

原创,转载需注明出处

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Studio flutter关于GradleException和NonNull报错的问题 的相关文章

随机推荐

  • J-Link RTT Viewer使用教程(附代码)

    目录 RTT Real Time Transfer 简介 使用教程 常用API介绍 RTT缓冲大小修改 使用printf重定向 官方例程 RTT Real Time Transfer 简介 平常调试代码中使用串口打印log xff0c 往往
  • [问题记录]JNI的整型数组返回出现stack corruption

    问题记录 JNI的整型数组返回出现stack corruption 在项目中编写了一个返回整型数组的JNI代码 xff0c 但是在测试时发现问题 xff0c 会产生stack corruption错误 xff0c debug之后发现是ret
  • Android逆向系列--JDWP协议

    Android逆向系列 JDWP协议 背景简介使用源码调用参考 背景 经常会遇到各种各样需要使用jdwp知识的场景 xff0c 比如调试Java源码 比如抓帧等等 xff0c 这些关联知识点通常都会极其复杂 xff0c 如果不能很好的了解j
  • 银河麒麟V10桌面版系统将用户开发Qt界面程序添加为开机自启动

    银河麒麟V10桌面版系统将用户开发Qt界面程序添加为开机自启动 银河麒麟V10桌面版系统允许用户开发自己的qt界面程序并将其添加为开机自启动 这样 xff0c 每次开机后 xff0c 用户开发的qt界面程序会自动启动 xff0c 无需手动打
  • 环境搭建-Linux-Mysql安装-10.3.7-MariaDB-log MariaDB Server

    10 3 7 MariaDB log MariaDB Server 安装记录 linux 系统 CentOS7 无脑安装 sudo yum install y redhat lsbsudo yum install y net tools关闭
  • 200506--iOS之NSAttributedString类

    Class NSAttributedString A string that has associated attributes such as visual style hyperlinks or accessibility data f
  • 批处理文件(bat)之全彩滚动我爱你

    前言 xff1a 本文章分享利用bat文件制作炫彩的全屏滚动文字效果 xff0c 具体效果可关注我的抖音 xff0c 查看短视频介绍 代码实现 xff1a 64 echo off amp setlocal enabledelayedexpa
  • @Bean放入其引用Bean中初始化失败分析

    以下讨论的问题及术语均在SpringBoot框架下 xff0c 问题十分小众 xff0c 仅做整理记录 1 先说重点 Bean依赖属性的注入顺序 xff0c 与代码定义顺序无关 xff1b 最好是将 64 Bean注解配置的Bean放在 6
  • 使用BeanCopier抛出NullPointerException溯源

    问题 使用cglib提供的net sf cglib beans BeanCopier进行对象拷贝时 xff0c 抛出如下异常 xff1a Exception in thread span class token string 34 main
  • 自制Alfred/Wox插件推荐

    最近上手Alfred的使用 xff0c 日常工作中存在很多需要高频执行的连续性动作 xff0c 将这一系列动作封装成Workflow xff0c 通过命令触发 xff0c 对提升效率确有很大帮助 自己封装了一些简单的Workflow xff
  • Python删除某一目录下的空文件(夹)

    Python删除某一目录下的空文件 夹 用途 输入文件夹路径 xff0c 将此文件夹下所有的空文件夹和空文件删除 xff0c 算是文件操作的一个习作吧 我拿它做什么就不广而告之了 代码 span class hljs comment cod
  • Win10下pip的安装

    pip简介 pip 是一个安装和管理 Python 包的工具 xff0c 通过pip我们能够轻松地下载和卸载python的第三方包 原料 64位Windows10 专业版python 2 7 12 下载安装包 进入python官方网站 xf
  • Windows10通过一根网线进行远程桌面连接

    目的 xff1a 想要通过笔记本访问我台式机 给台式机设置IP地址 xff1a IP xff1a 192 168 0 2 子网掩码 xff1a 255 255 255 0 默认网关 xff1a 192 168 0 2 给笔记本设置ip地址
  • Python爬虫爬取动态页面思路+实例(一)

    简介 有时候 xff0c 我们天真无邪的使用urllib库或Scrapy下载HTML网页时会发现 xff0c 我们要提取的网页元素并不在我们下载到的HTML之中 xff0c 尽管它们在浏览器里看起来唾手可得 这说明我们想要的元素是在我们的某
  • zerorpc-python官方入门

    原文地址 xff1a http www zerorpc io 一个易于使用的 xff0c 直观的 xff0c 跨语言的RPC zerorpc是一个在服务端进程上提供分布式通信的轻量级的 可靠的跨语言的库 它基于ZeroMQ和MessageP
  • Python保存json文件并格式化

    背景 最近自己搞些小东西 xff0c 需要用json文件存储些文件属性什么的 xff0c 但是发现用json包里的json dump 方法存json文件的效果好丑 xff08 其实是没仔细看方法 xff09 于是上网找了一份格式化json文
  • No module named 'django.templates'起因和解决

    当我跟着django官网上的教程写到template模板这一部分的时候 xff0c 出现了上述问题 span class hljs constant No span span class hljs class span class hljs
  • Celery ValueError: not enough values to unpack (expected 3, got 0)的解决方案

    背景 最近因项目需要 xff0c 学习任务队列Celery的用法 xff0c 跟着官网写Demo xff0c 出现如题错误 xff0c 最终在github的Issues里找到解决办法 xff0c 记录如下 场景还原 本地环境如下 xff1a
  • 震惊!Selenium分手PhantomJS

    背景 今天本地调试基于Selenium 43 PhantomJS的动态爬虫程序顺利结束后 xff0c 着手部署到服务器上 xff0c 刚买的热乎的京东云 xff0c 噼里啪啦一顿安装环境 xff0c 最后跑的时候报了这么个错误 xff1a
  • Android Studio flutter关于GradleException和NonNull报错的问题

    Android Studio flutter关于GradleException和NonNull报错的问题 问题描述build gradle的报错NonNull的报错 问题追踪及尝试解决解决方案 方案一 暴力解决 方案二 优雅忽略 方案三 心