Proguard警告:找不到引用的类scala.*。

4

在升级新的Android工具后,我从Proguard收到以下警告:

Warning: scala.xml.EntityRef: can't find referenced class scala.xml.EntityRef$$anonfun$text$1
Warning: scala.xml.dtd.AttrDecl$: can't find referenced class scala.xml.dtd.AttrDecl$$anonfun$toString$1
Warning: scala.collection.mutable.LinkedListLike: can't find referenced class scala.collection.mutable.LinkedListLike$$anonfun$insert$1
Warning: scala.xml.NamespaceBinding: can't find referenced class scala.xml.NamespaceBinding$$anonfun$toString$1
Warning: scala.xml.NamespaceBinding: can't find referenced class scala.xml.NamespaceBinding$$anonfun$buildString$1
Warning: scala.xml.MetaData$: can't find referenced class scala.xml.MetaData$$anonfun$toString$1
Warning: scala.xml.MetaData$: can't find referenced class scala.xml.MetaData$$anonfun$toString1$1
Warning: scala.collection.immutable.BitSet: can't find referenced class scala.collection.immutable.BitSet$$anonfun$$plus$1
Warning: scala.collection.immutable.BitSet: can't find referenced class scala.collection.immutable.BitSet$$anonfun$$minus$1
Warning: scala.collection.mutable.FlatHashTable$$anonfun$checkConsistent$1: can't find referenced class scala.collection.mutable.FlatHashTable$$anonfun$checkConsistent$1$$anonfun$apply$mcVI$sp$1
Warning: scala.collection.immutable.RedBlack: can't find referenced class scala.collection.immutable.RedBlack$Empty
Warning: scala.collection.immutable.BitSet$: can't find referenced class scala.collection.immutable.BitSet$$anonfun$$plus$1
Warning: scala.collection.immutable.BitSet$: can't find referenced class scala.collection.immutable.BitSet$$anonfun$$minus$1
Warning: scala.xml.EntityRef$: can't find referenced class scala.xml.EntityRef$$anonfun$text$1
Warning: scala.Either: can't find referenced class scala.Either$$anonfun$joinLeft$1
... (more) ...

有什么提示说明Proguard为何无法找到这些类?我该如何解决?

2个回答

5

如果您查看scala-library.jar(版本为2.9.1)中所列类的内部,您会发现它们引用了根本不存在的类。我认为这是编译器的问题。尽管这些引用不是处理和运行代码必需的,但您仍可以使用此选项让ProGuard接受此jar文件:

-dontwarn scala.**

这个是从哪个版本的Proguard开始生效的?我正在使用“Android”的版本,但仍然显示Scala警告。 - TN.
+1 看起来对 -dontwarn scala.**(两个星号)有帮助。 - TN.
这个答案救了我的命。+1。 - Regex Rookie

1
你是如何构建项目的?使用 Ant?Sbt?Maven?你最初的设置是从哪里获取的?
假设你正在使用 Ant 和 http://lamp.epfl.ch/~michelou/android/ 上描述的设置,那么你是否已经更新了 build-scala.xml 和 proguard 模板以支持最新的 Android SDK?

谢谢你的提示,我已经从他们的proguard.cfg中复制了Scala特定的规则。(我正在使用自己的build.xml,它更类似于SDK版本。) - TN.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接