已有项目为完成某些需求依赖了cordovaLib,我们项目是直接把cordovaLib打成jar包加进项目里,增加了一些cordova的插件,项目运行正常,但是打包后出现被调用的插件找不到相关类的问题。
原因:
项目打包过程中将cordova相关插件的java类进行了混淆,所以html无法根据之前在config.xml中配置的包名.类名中找到对应的java类。
解决方法:
在混淆配置文件proguard-project.txt中添加如下代码,混淆的时候忽略cordova.jar以及jar包里org.apache.cordova下的所以文件:
-libraryjars libs/cordova.jar
-dontwarn org.apache.cordova.**
-keep class org.apache.cordova.** { *; }
-keep public class * extends org.apache.cordova.**
还有就是你加进自己项目里的插件所对应的java代码也需要忽略掉,如果你把这些文件都放在了一个包里那么恭喜你,添加一句:-keep public class 包名.** { *; }就行了,例如:-keep public class org.apache.cordova.** { *; };如果分散在不同的包下,那就需要你一个一个的忽略了:-keep public class 包名.类名,例如-keep public class com.example.demo.Test