1. ARouter+Kotlin无法生成路由文档问题解决

如题,无法生成 build/generated/source/apt/(debug or release)/com/alibaba/android/arouter/docs/arouter-map-of-${moduleName}.json

官方

ARouter README中提到:

// 更新 build.gradle, 添加参数 AROUTER_GENERATE_DOC = enable// 生成的文档路径 : build/generated/source/apt/(debug or release)/com/alibaba/android/arouter/docs/arouter-map-of-${moduleName}.jsonandroid {    defaultConfig {        ...        javaCompileOptions {            annotationProcessorOptions {                arguments = [AROUTER_MODULE_NAME: project.getName(), AROUTER_GENERATE_DOC: "enable"]            }        }    }}

在Java下是没问提,但使用Kotlin的时候需要改为以下配置

解决方案

apply plugin: 'kotlin-kapt'kapt {    arguments {        arg("AROUTER_MODULE_NAME", project.getName())        arg("AROUTER_GENERATE_DOC", "enable")    }}

2. Error:Execution failed for task ‘:app:compileDebugKotlin’. > Compilation error. See log for more details

产生此问题有多种情况,此处只讨论与ARoute有关的问题。根据提示,添加 --stacktrace --debug 是有些详细log,但和项目没什么直接关系,所以没什么卵用。

产生原因

其实按照ARoute的文档进行操作就没有什么问题的,所以出现问题无非就是自己使用时出现了问题。

解决方案

  • 1 . 检查@Autowired 是否使用了private修饰符,若有,去掉private即可
  • 2 . 检查@Route(path = “”),这里path里至少需要两级,即例:path = "/test/activity"

3. @Autowired 获取值是Null

这里只给出个人原因导致Null的解决方案,若是ARouter的bug,请到官方提issue。

例:

# AActivityARouter.getInstance()                    .build("/activity/b")                    .withBoolean("bool",true)                    .withParcelable("parcel",new P())                    .navigation()# BActivity@Route(path = "/activity/b")class BActivity: AppCompatActivity(){@Autowired(name = “bool”)    @JvmField    var mBool: Boolean? = null    @Autowired(name = “parcel”)    @JvmField    var mP: P? = null    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout...)ARouter.getInstance().inject(this@BActivity)    }}
  • @Autowired取值为null,请先检查目标中是否有ARouter.getInstance().inject(this)
  • 若仅mP == null,请检查P.kt是否有空构造函数
  • 若配置无误,但扔存在Null,Clean Projec了解一下

以上。

更多相关文章

  1. Android(安卓)Studio的快捷键-官方文档
  2. Error:Cause: buildToolsVersion is not specified.
  3. android:报Activity has leaked IntentReceiver或者re...
  4. Android(安卓)Studio项目报错:Caused by: java.lang.ClassNotFou
  5. Android快速开发整理(库、插件、常用网站)
  6. ADT:v22.6.2-1085508创建android工程自动创建appcompat_v7解决方
  7. 解决gradle编译报Error:All flavors must now belong to a named
  8. Android设置theme中的坑
  9. Android两级嵌套ListView滑动问题的解决

随机推荐

  1. android Activity 组件
  2. Eclipse New菜单中没有Android(安卓)Proj
  3. Android(安卓)binder学习一:主要概念
  4. android sqlite批量插入数据速度慢解决方
  5. Android串口通信(基于Tiny6410平台)
  6. Android的消息推送系列之消息推送原理
  7. Android的Camera架构介绍
  8. 大话Android的消息机制(Handler、Looper
  9. Android的常用基本控件ImageView、ListVi
  10. Android Activity全屏和设置背景色