2012-10-22 8 views
11

मैं IntelliJ भीतर निम्नलिखित निर्देशिका संरचना है, जो एक Android पुस्तकालय परियोजना शामिल है:मैं इंटेलिजे को परियोजना संकलक आउटपुट निर्देशिका में संसाधनों की प्रतिलिपि बनाने से कैसे रोकूं?

java/com/example/base/AndroidManifest.xml 
java/com/example/base/assets # contains Android assets 
java/com/example/base/res # contains Android resources 
java/com/example/base/Base.java 
java/com/example/base/base.iml 

base.iml निम्नलिखित शामिल हैं:

<content url="file://$MODULE_DIR$"> 
    <sourceFolder url="file://$MODULE_DIR$" 
       isTestSource="false" 
       packagePrefix="com.example.base" /> 
    <sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" /> 
    <excludeFolder url="file://$MODULE_DIR$/res" /> 
</content> 

जब मैं एक Android आवेदन परियोजना है कि मेरे पुस्तकालय पर निर्भर करता है का निर्माण

[myapp] java.util.zip.ZipException: duplicate entry: res/drawable/image_shadow.9.png 

परियोजना stru में: परियोजना, मैं कोई त्रुटि मिलती है cture संवाद, मैंने प्रोजेक्ट कंपाइलर आउटपुट को मेरे प्रोजेक्ट की रूट के नीचे out निर्देशिका कॉन्फ़िगर करने के लिए कॉन्फ़िगर किया। जब मैं अपना एंड्रॉइड प्रोजेक्ट बनाने की कोशिश करता हूं, मैंने देखा कि मेरे एंड्रॉइड संसाधनों की प्रतियां out/production/base/com/example/base/res/ फ़ोल्डर के तहत समाप्त होती हैं।

मेरे परिकल्पना है कि मेरे Android संसाधनों (प्रकार आप Class.getResource() का उपयोग करके लोड होता है) "सामान्य" जावा संसाधनों की तरह व्यवहार किया जा रहा है, जिसके कारण वे out/production, जो बारी में duplicate entry अपवाद है कि मैं कर रहा हूँ का कारण बनता है पर कॉपी किया जा रहा है देख के।

कोई विचार अगर यह मामला है? यदि हां, तो मैं इन फ़ाइलों को कॉपी करने से कैसे रोक सकता हूं? ग्रहण में, तत्व .classpath फ़ाइल में excluding विशेषता है जो इस तरह के व्यवहार को रोकने के लिए एक ग्लोब पैटर्न लेता है।

+0

मुझे यह जोड़ना चाहिए कि मैंने अंधेरे में शॉट के रूप में '' चीज़ को आजमाया।किसी भी समाधान के लिए जो कुछ आवश्यक है वह कुछ हद तक अवांछनीय है क्योंकि यह इंटेलिजे के यूआई में स्रोत पेड़ से मेरे 'res' फ़ोल्डर को छुपाता है। मैं फ़ोल्डर को संकलन के लिए विचार करने से बाहर करना चाहता हूं, दृश्यमान होने से नहीं। – bolinfest

+0

समस्या आपके एंड्रॉइड फ़ैस सेटिंग्स में हो सकती है, शायद गलत निर्देशिका को 'res' के रूप में कॉन्फ़िगर किया गया है। आपकी '.iml' फ़ाइलों के बिना और नहीं कह सकता। – CrazyCoder

+0

मेरा मानना ​​है कि मेरे पहलू मानक बॉयलरप्लेट है: <घटक नाम = "FacetManager"> <पहलू प्रकार = "एंड्रॉयड" नाम = "एंड्रॉयड"> <विन्यास> <विकल्प नाम = "RES_FOLDER_RELATIVE_PATH" मान = "/res "/> तो मुझे पूरी चीज पेस्ट करने की प्रतीत नहीं होती है। मुझे उत्सुकता है कि क्या पैकेज के साथ इस बातचीत को प्रीफिक्स और एंड्रॉइड लाइब्रेरी प्रोजेक्ट का परीक्षण किया गया है? – bolinfest

उत्तर

0

आप की तरह एक परियोजना संरचना होनी चाहिए:

  • परियोजना/src/मुख्य/रेस
  • परियोजना/src/मुख्य/संपत्ति
  • परियोजना/src/मुख्य/जावा
  • परियोजना/src/मुख्य/AndroidManifest.xml

वैसे भी, रेस फ़ोल्डर के लिए आप इस तरह एक प्रवेश होना चाहिए:

<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" /> 
+0

मेरे लिए काम नहीं किया :(कोई और सुझाव? – bentzy

1

मुझे एक ही समस्या का सामना करना पड़ा क्योंकि main डीआईआर को "स्रोत" के रूप में चिह्नित किया गया था।

परियोजना संरचना में

तो, एंड्रॉयड पहलू के लिए, "संरचना" टैब के अंतर्गत मैं था:

... Resources directory: .../src/main/res ...

और मॉड्यूल के लिए सामान्य "स्रोत" टैब के तहत, src तहत main dir था "स्रोत" के रूप में चिह्नित किया गया है।

मैं की तरह स्रोत टैब नज़र बनाकर यह तय:

- src (unmarked) - main (unmarked) - java (Sources) - res (Resources)

तो मुझे लगता है कि त्रुटि है क्योंकि रेस बातें जिप दोनों स्रोतों और संसाधनों के रूप में इसलिए दोहराव में पैक किया जा रहा है।

संबंधित मुद्दे