一个引入问题导致的对android studio编译顺序的思考

    最近App项目中需要接入本公司的一个广告sdk,涉及到闪屏页广告的露出.因为已经把闪屏页,登录注册抽取了公共账户模块,所以需要在该模块中接入sdk,按照规定接入后,发现出现了闪退的问题:

01-11 09:09:23.976 8796-9217/com.phicomm.envmonitor E/AndroidRuntime: FATAL EXCEPTION: Thread-20830
Process: com.phicomm.envmonitor, PID: 8796
java.lang.NoSuchMethodError: No virtual method load(Ljava/lang/String;)Lcom/bumptech/glide/DrawableTypeRequest; in class Lcom/bumptech/glide/RequestManager; or its super classes (declaration of 'com.bumptech.glide.RequestManager' appears in /data/app/com.phicomm.envmonitor-1/split_lib_dependencies_apk.apk)
at com.phicomm.adplatform.startPage.StartPage$7.run(StartPage.java:283)
at java.lang.Thread.run(Thread.java:818)​

   以上问题的主要意思是Glide找不到对应的方法,查阅了整个项目中引入Glide的地方,发现App模块中使用的Glide版本是4.1.1(较新),account library中使用的Glide版本是3.7.0(较老,为引入广告sdk导入),于是打开了报错处查看方法使用的Glide版本,发现是4.1.1,不是account模块中的3.7.0
   点击状态栏的project structure,查看项目结构后才恍然大悟,原来编译顺序是先app模块,再account模块,所以导致Glide的版本仍是4.1.1,广告sdk需要的3.7.0的方法找不到.

   解决方法是将app中Glide版本换为3.7.0,闪退问题就迎刃而解~


project_structure.png
一个引入问题导致的对android studio编译顺序的思考_第1张图片
项目结构.png

你可能感兴趣的:(一个引入问题导致的对android studio编译顺序的思考)