meituan/WMRouter

接入问题,不能找到ServiceLoaderInit

Closed this issue · 3 comments

我把Debugger打开了,发现报错,不能找到类ServiceLoaderInit,再找文档中的常见问题,说是gradle没有正常工作,又检查gradle,我并没有加上这句,apply plugin: 'WMRouter',因为加上这句会编译不了,Unexpected scopes found in folder 'G:\文件夹路径'. Required: EXTERNAL_LIBRARIES, PROJECT. Found: EXTERNAL_LIBRARIES, PROJECT, SUB_PROJECTS
我的配置是:Android studio3.0, Android plugin version:3.1.3',gradle version:4.4
classpath "com.sankuai.waimai.router:plugin:1.1.0"
implementation 'com.sankuai.waimai.router:router:1.1.0'
annotationProcessor 'com.sankuai.waimai.router:compiler:1.1.0'
求解答,谢谢

按照你的Android Plugin和Gradle版本试了下,能正常编译运行,没有出现你说的问题。

网上的一种说法是Gradle插件的getScope调用了Deprecated的Scope,但WMRouterTransform里直接用的TransformManager.SCOPE_FULL_PROJECT,分析了源码和发布的jar包,应该没有问题。

参考 https://www.jianshu.com/p/a12a473896dd

结合网上的内容提一些可能的解决方法:

  1. 文件夹如果有中文,尽量改成英文
  2. 删除项目根目录和各个模块下的build目录,根目录下的.idea.gradle
  3. 直接用命令行编译可以避免Android Studio引入的问题,例如Demo工程可以用./gradlew :demoapp:assembleDebug编译
  4. Android Studio设置使用项目中的Gradle Wrapper而不是本地的特定版本(use default gradle wrapper
  5. 可以试试直接克隆下来没有改动的Demo工程能不能编译(./gradlew :demoapp:assembleDebug),然后再把Demo工程的Gradle版本改成你所说的版本再试一下,如果Demo工程没问题,对比下和你的工程区别在哪

谢谢了

我这边也出现上面的问题 [WMRouter] GenerateInit: skipped, no service found