2010-05-21 27 views
7

Tôi là một bước xa làm cho phương pháp này được mô tả ở đây: Targeting Android with Scala 2.8 Trunk buildsLàm thế nào để loại trừ các file R * .class từ một Proguard build

làm việc với một dự án duy nhất (vs một dự án cho scala và một cho android).

Tôi gặp phải sự cố. Sử dụng tập tin đầu vào này (đối số) proguard:

-injars bin;lib/scala-library.jar(!META-INF/MANIFEST.MF,!library.properties) 

-outjar lib/scandroid.jar 

-libraryjars lib/android.jar 

-dontwarn 
-dontoptimize 
-dontobfuscate 
-dontskipnonpubliclibraryclasses 
-dontskipnonpubliclibraryclassmembers 

-keepattributes Exceptions,InnerClasses,Signature,Deprecated, 
       SourceFile,LineNumberTable,*Annotation*,EnclosingMethod 
-keep public class org.scala.jeb.** { public protected *; } 
-keep public class org.xml.sax.EntityResolver { public protected *; } 

Proguard xây dựng thành công scandroid.jar, tuy nhiên nó dường như đã bao gồm các lớp R được tạo ra mà trình tạo tài nguyên android tạo và biên dịch. Trong trường hợp này, chúng nằm trong bin/org/jeb/R * .class. Đây không phải là điều tôi muốn. Bộ chuyển đổi dalvik android không thể xây dựng vì nó cho rằng có một bản sao của lớp R (nó nằm trong scandroid và cũng là các tệp .class * R). Làm thế nào tôi có thể sửa đổi các đối số proguard trên để loại trừ các tập tin R * .class từ scandroid.jar để chuyển đổi dalvik là hạnh phúc? Chỉnh sửa: Tôi nên lưu ý rằng tôi đã thử thêm; bin/org/jeb/R.class; v.v ... vào đối số -libraryjars và điều đó dường như chỉ gây ra khiếu nại về các lớp trùng lặp và ngoài ra proguard đã quyết định loại trừ các tệp lớp scala của tôi.

+1

Tôi không biết ra khỏi đỉnh đầu của tôi cho Proguard - bạn có thể thử hỏi trên các diễn đàn Proguard tại http://sourceforge.net/projects/proguard/forums/forum/182456. Bạn có thể giải quyết vấn đề này theo cách khác. Có cách nào để Eclipse đưa các tập tin * .class được tạo ra bởi các công cụ R vào một thư mục khác (một cái gì đó khác hơn là bin)? –

+0

Tôi đã có một câu hỏi simiar, đã nhận nó trả lời [ở đây] (http://stackoverflow.com/questions/11325087/what-are-the-semantics-of-proguardinjars-in-sbt-android-plugin). – Lopina

Trả lời

4

tập tin lọc! **/* R.java nói cách khác này lực lượng lien Proguard để giữ tất cả các file java trừ file R.java trong obfuscation

Các vấn đề liên quan