今天尝试在 Android 的项目中使用, Scala 的 String.r 方法直接生成正则表达式, 结果编译无问题…
测试应用的时候, 却报错…
错误信息大致如下:
...
at scala.collection.immutable.StringLike$class.r(StringLike.scala:224)
at scala.collection.immutable.StringOps.r(StringOps.scala:31)
...
网上搜了一圈获得以下两种解决方式:
方式1, proguarde 参数添加:
-keep class scala.collection.SeqLike { *; }
这样的好处就是, 就是可以按照预期执行你的代码, 即使用 String.r 生成正则了, 但是坏处就是结果生成的 apk 文件会远大于之前的文件
PS: 如果采用此种方式, 执行编译前最好先 clean 一下项目
方式2, 使用 Regex
import scala.util.matching.Regex
后使用:
val exp = new Regex(“正则”)
的方式生成正则表达式对象, 但是编译结果的文件大小不会发生变化…
至于选用哪种方式, 就看你们自己了…我只能帮你到这里了…
博主整理编写, 属原创, 转载请注明出处