1,在每个module下的build.gradle里:
plugins{
id 'kotlin-kapt'
}
andorid{
defaultconfig{
kapt {
arguments {arg("AROUTER_MODULE_NAME", project.getName())}
}
}
multiDexEnabled true
}
dependencies {
api 'com.alibaba:arouter-api:1.4.1'
kapt 'com.alibaba:arouter-compiler:1.2.2'
}
2,在application里
class App : Application() {
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
ARouter.openLog() // 打印日志
ARouter.openDebug() // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)
}
ARouter.init(this)
}
}
3,在指定Actvity/fragment里
@Route(path = "/home/HomeActivity" ) //注意格式 以/开头,最少两层
class HomeActivity : AppCompatActivity() {
@Autowired(name = "tag")
@JvmField
var tag: String = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
// 注意一定要注入才能接收到参数
ARouter.getInstance().inject(this)
}
}
4,在使用的Actvity/fragment里
@Route(path = "/app/MainActivity")
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
ARouter.getInstance()
.build("/home/HomeActivity")
.withString("tag","hello")
.navigation()
}
}