本文主要是介绍插件开发遇到的坑------final 型变量,编译过程被优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
android 插件开发遇到的坑
今天遇到一个坑,pdf 插件,调用了主工程的一个静态final 字符串,但是主工程里面已经没有这个字符串了,却没有崩溃。
后来同事说,因为字符串可能已经直接被写死了。你应该看下编译后的代码。我一同事,反编译apk 之后,发现,果然,因为provide 的jar 里面是有这个final 的字符串的,java 编译的时候,直接用死的值替换掉了。这样,根本就没有去调用主工程的那个变量。
总结:
1.provide 的 jar,不一定完全没有作用。final的变量,编译器直接写死了。
2.看java 代码解决不了问题,那就看编译之后的代码,你就知道为什么了。
3.机器永远不会做错,只能是你理解错了。
自己对java 编译还是不够理解。自己对java 还有很多其他的东西,根本不懂。比如编译过程。等。
这篇关于插件开发遇到的坑------final 型变量,编译过程被优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!