Предупреждения Proguard: не удается найти указанный класс scala. * - PullRequest
4 голосов
/ 04 ноября 2011

После обновления до новых инструментов 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 голосов
/ 05 ноября 2011

Если вы посмотрите на внутренние компоненты перечисленных классов из scala-library.jar (версия 2.9.1), вы увидите, что они ссылаются на классы, которые вообще не существуют. Это похоже на проблему компилятора для меня. Ссылки не являются фундаментальными для обработки и запуска кода, поэтому вы можете позволить ProGuard принять jar с этой опцией:

-dontwarn scala.**
1 голос
/ 04 ноября 2011

Как вы строите?С муравьем?Sbt?Maven?И откуда вы взяли настройки в первую очередь?

Предполагая, что вы используете Ant и настройку, описанную в http://lamp.epfl.ch/~michelou/android/, вы обновили build-scala.xml и шаблоны proguardк тем, которые недавно зарегистрировались для поддержки последней версии Android SDK?

...