2011-10-16 28 views
12

Scala/Java programımı Proguard kullanarak küçültmeyi ve gizlemeyi denedim. Ben sadece Scala-library.jar kullanıyordum ederken, her şey iyiydi, ama benim kavanozlara Scala-swing.jar eklediğinizde, aşağıdaki alıyorum: Ben kavanoza bakarsakProguard kullanarak scala swing kütüphanesi nasıl çekilir?

Warning: scala.swing.ComboBox: can't find referenced class scala.swing.ComboBox$selection 
Warning: scala.swing.ListView: can't find referenced class scala.swing.ListView$selection 
Warning: scala.swing.ListView$selection$: can't find referenced class scala.swing.ListView$selection$indices 
Warning: scala.swing.ListView$selection$: can't find referenced class scala.swing.ListView$selection$items 
Warning: scala.swing.ListView$selection$$anon$7: can't find referenced class scala.swing.ListView$selection 
Warning: scala.swing.ListView$selection$Indices: can't find referenced class scala.swing.ListView$selection 
Warning: scala.swing.ListView$selection$indices$: can't find referenced class scala.swing.ListView$selection$indices 
Warning: scala.swing.ListView$selection$indices$: can't find referenced class scala.swing.ListView$selection$indices 
Warning: scala.swing.ListView$selection$indices$: can't find referenced class scala.swing.ListView$selection 
Warning: scala.swing.ListView$selection$items$: can't find referenced class scala.swing.ListView$selection 

, görüyorum Gerçekten böyle bir dosya yok - scala.swing.ComboBox$selection.class yerine scala.swing.ComboBox$selection$.class var. Elle yeniden adlandırma, hile yapmaz - daha sonra dosyanın farklı bir adla sınıfı içerdiği konusunda şikayet eder.

Yani, bu yasadışı başvurular scala-swing.jar nedir? Yoksa Proguard'da bir böcek mi?

Geçici bir çözüm önerebilir misiniz?

DÜZENLEME: Scala 2.9.0.1 ve ProGuard kullanıyorum 4.6

EDIT2: Scala 2.9.1.final kavanozlar yardım etmedi kullanma.

+1

-dontwarn scala.swing.** 
: tam olarak ne istediğini yapar, http://proguard.sourceforge.net/feedback.html –

cevap

4

Scala derleyicisinde bir hataya benziyor.

public final scala.swing.ComboBox$selection$ selection() 

Dahili olarak, yöntem imzası aşağıdaki şekilde temsil edilmektedir: Tamam görünüyor

()Lscala/swing/ComboBox$selection$; 

Örneğin, sınıf dosyası skala/salıncak/ComboBox.class aşağıdaki yöntemi içerir. Ancak yöntem ayrıca silinen jenerik izlemek için bir imza niteliği vardır:

()Lscala/swing/ComboBox<TA;>.selection; 

Gördüğünüz gibi

, imza ucunda bir $ eksik. ProGuard olarak, belirterek sorunu çalışabilirsiniz

Sen ProGuard forumlarda yayın denemek isteyebilirsiniz
+0

Evet . Teşekkür ederim! – Rogach