2010-05-21 11 views
7

से आर * .class फ़ाइलों को छोड़ने के लिए मैं विधि यहाँ वर्णित बनाने से दूर एक कदम हूँ: एक भी परियोजना के साथ Targeting Android with Scala 2.8 Trunk buildsकैसे एक ProGuard निर्माण

काम (स्केला के लिए एक परियोजना और एंड्रॉयड के लिए एक बनाम)।

मुझे एक समस्या आई है। इस इनपुट फ़ाइल (तर्क) 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 सफलतापूर्वक scandroid.jar बनाता है, लेकिन यह उत्पन्न आर कक्षाएं कि एंड्रॉयड संसाधन बिल्डर उत्पन्न करता है और संकलित को शामिल किया है प्रतीत होता है। इस मामले में, वे बिन/संगठन/जेब/आर * .class में स्थित हैं। यह वह नहीं है जिसकी मुझे चाहत है। एंड्रॉइड डाल्विक कनवर्टर निर्माण नहीं कर सकता क्योंकि ऐसा लगता है कि आर वर्ग का डुप्लिकेट है (यह स्कैंड्रॉइड में है और आर * क्लास फाइल भी है)। Scandroid.jar से R * .class फ़ाइलों को बाहर करने के लिए उपर्युक्त प्रोजेवार्ड तर्कों को मैं कैसे संशोधित कर सकता हूं ताकि दल्विक कनवर्टर खुश हो? संपादित करें: मुझे ध्यान रखना चाहिए कि मैंने - bin/org/jeb/r.class; आदि ... को लाइब्रेरीज़ तर्क में जोड़ने की कोशिश की, और ऐसा लगता है कि यह डुप्लिकेट कक्षाओं के बारे में शिकायत करने का कारण बनता है, और इसके अलावा प्रोगुआर्ड ने निर्णय लिया मेरी स्कैला क्लास फाइलों को भी बाहर निकालें।

+1

मैं ProGuard के लिए मेरे सिर के ऊपर से पता नहीं है - आप http://sourceforge.net/projects/proguard/forums/forum/182456 पर ProGuard मंचों पर पूछने का प्रयास करें। आप इसे किसी अन्य तरीके से हल करने में सक्षम हो सकते हैं। क्या एक्लिप्स ने आर सामान द्वारा जेनरेट की गई * .class फ़ाइलों को एक अलग निर्देशिका (बिन के अलावा कुछ और) में रखने का कोई तरीका है? –

+0

मेरे पास एक simiar सवाल था, यह जवाब दिया [यहां] (http://stackoverflow.com/questions/11325087/what-are-the-semantics-of-proguardinjars-in-sbt-android-plugin)। – Lopina

उत्तर

4

फ़ाइल फिल्टर! **/* R.java दूसरे शब्दों में कहानियो

7

मैं इस विकल्प का उपयोग में R.java फ़ाइलों को छोड़कर सभी जावा फाइल को रखने के लिए इस ग्रहणाधिकार बलों Proguard। आप नीचे दिए गए लिंक से संदर्भ पा सकते हैं और "एक पूर्ण एंड्रॉइड एप्लिकेशन" ढूंढ सकते हैं। http://proguard.sourceforge.net/index.html#/manual/examples.html

-keepclassmembers class **.R$* { 
    public static <fields>; 
} 
संबंधित मुद्दे