android - चींटी के साथ एंड्रॉइड ऐप(एक्शनबॉर्शल लॉक और व्यू पेजर टैब दोनों का संदर्भ लें)बनाने में विफल




ant android-viewpager actionbarsherlock (4)

आपने यह कहा है क्योंकि दोनों लाइब्रेरी में एंड्रॉइड-सपोर्ट- v4.jar है । गैर-मेवेन बिल्ड के लिए @ पोर्टर-लीउ उत्तर देखें

मेवेन का इस्तेमाल करने वाले लोगों के लिए, अपने ViewPager निर्भरता को इस रूप में सेट करें:

    <dependency>
        <groupId>com.viewpagerindicator</groupId>
        <artifactId>library</artifactId>
        <version>2.4.1</version>
        <type>apklib</type>
        <exclusions>
            <exclusion>
                <groupId>com.google.android</groupId>
                <artifactId>support-v4</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

exclusion टैग समस्या को तय करने वाली दोहरे आयात को रोक देता है।

मेरे पास एक एंड्रॉइड ऐप है जो ActionBarSherlock और ViewPagerTabs का उपयोग करता है मैं लिखने और इसे बनाने के लिए एक्लिप्स का उपयोग करता हूं, और जब तक मैं चींटी के साथ इसे बनाने की कोशिश नहीं करता, यह ठीक काम करता है यहां मैंने जो किया है:

  1. ActionBarSherlock फ़ोल्डर पर जाएं, "android update lib-project - path" चलाएं।
  2. ViewPagerTabs फ़ोल्डर में जाएं, "android update lib-project - path" चलाएं। बहुत
  3. ऐप फ़ोल्डर पर जाएं, "एंड्रॉइड अपडेट प्रोजेक्ट --पथ" चलाएं।
  4. ऐप फ़ोल्डर के तहत "और डीबग" चलाएं, और मुझे निम्न त्रुटियां मिलीं:

:

[javac] C:\Android\TestApp\src\com\test\App\TestActivity.java:46: cannot find symbol
[javac] symbol  : method getSupportActionBar()
[javac] location: class com.test.App.TestActivity
[javac]         final ActionBar ab = getSupportActionBar();
[javac]                              ^

तो सवाल नहीं। 1: मेरे पास ऐप के प्रोजेक्ट में सही लाइब्रेरी संदर्भ हैं। प्रॉपर्टीज़, और एक्शनबारशरॉक और व्यू पेजरटैब को सफलतापूर्वक बनाया जा सकता है, मुझे अभी भी ये त्रुटियां क्यों मिलती हैं?

इस मुद्दे के लिए एक वैकल्पिक हल है - लायब्रेरी के बिन फ़ोल्डर के अंतर्गत एप के लिब्स फ़ोल्डर में सभी कक्षाओं को कॉपी करें और दोबारा "एटी डीबग" चलाएं। लेकिन ऐप के लिब्स फ़ोल्डर में इन .jar फ़ाइलों को हटाने की ज़रूरत है, क्योंकि सभी ऐप्प की जावा फाइलों को संकलित किया जा सकता है।

इसके बाद फिर से "एटी डिबग" चल रहा है, मुझे निम्न त्रुटियां मिलेंगी:

[dx] processing archive C:\Android\ActionBarSherlock\library\bin\classes.jar...
[dx] ignored resource META-INF/MANIFEST.MF
[dx] processing android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoStubImpl.class...
[dx] processing android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl.class...
[dx] processing android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat.class...
[dx] processing android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs.class...
[dx] processing android/support/v4/app/ActionBar$LayoutParams.class...
[dx] processing android/support/v4/app/ActionBar$OnMenuVisibilityListener.class...
[dx] processing android/support/v4/app/ActionBar$OnNavigationListener.class...
[dx] processing android/support/v4/app/ActionBar$Tab.class...
[dx] processing android/support/v4/app/ActionBar$TabListener.class...
[dx] processing android/support/v4/app/ActionBar.class...
[dx] processing android/support/v4/app/ActivityCompatHoneycomb.class...
[dx] 
[dx] UNEXPECTED TOP-LEVEL EXCEPTION:
[dx] java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompatHoneycomb;
[dx]    at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[dx]    at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
[dx]    at com.android.dx.command.dexer.Main.processClass(Main.java:486)
[dx]    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)
[dx]    at com.android.dx.command.dexer.Main.access$400(Main.java:67)
[dx]    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)
[dx]    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
[dx]    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
[dx]    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
[dx]    at com.android.dx.command.dexer.Main.processOne(Main.java:418)
[dx]    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
[dx]    at com.android.dx.command.dexer.Main.run(Main.java:206)
[dx]    at com.android.dx.command.dexer.Main.main(Main.java:174)
[dx]    at com.android.dx.command.Main.main(Main.java:95)
[dx] 1 error; aborting

मेरा प्रश्न संख्या 2 है: मैं इस मुद्दे को कैसे ठीक कर सकता हूं?

धन्यवाद!


जब आप लिब-प्रोजेक्ट अपडेट करते हैं, तो आप इस प्रोजेक्ट को अपडेट कर रहे हैं ताकि वह लाइब्रेरी के रूप में संकलित हो। आपके मुख्य प्रोजेक्ट को अपडेट करने के लिए एक अलग कदम है जिससे कि वह उस पुस्तकालय को देख लेता है जिसकी आवश्यकता है

प्रत्येक पुस्तकालय परियोजना के लिए आप उपयोग करने जा रहे हैं, चलाएं

एंड्रॉइड अपडेट प्रोजेक्ट - लाइब्रेरी ../pathToTheLibrary


मैं अंत में यह खुद को हल। मुझे लगता है कि ViewPagerTabs 'libs फ़ोल्डर में एक android-support-v4.jar है। समाधान है - इस एंड्रॉइड-सपोर्ट- v4.jar को हटाने, फिर ViewPagerTabs ActionBarSherlock पर निर्भर करते हैं (क्योंकि ActionBarSherlock में वास्तव में समर्थन पैकेज की एक प्रति है)।

मुझे आशा है कि यह उन लोगों के लिए उपयोगी है, जो एक आवेदन में एक्शनबॉर्शल लॉक और व्यू पेजरटैब का उपयोग करना चाहते हैं और चींटी का उपयोग अपने आवेदन को बनाने के लिए करते हैं। सौभाग्य।


यदि आप कस्टम शैली का उपयोग करना चाहते हैं, तो मैंने कस्टम ActionBarSherlock शैली के लिए एक टेम्पलेट बनाया। थीम को /values/styles.xml फ़ाइल में परिभाषित किया गया है। यह Theme.Sherlock.Light थीम से विस्तारित है। कई पैरामीटर हैं, आप सेट कर सकते हैं: आइकन, लोगो, डिवाइडर, शीर्षक, छाया ओवरले, एक्शन मेनू बटन, पॉपअप मेनू, एक्शन मोड पृष्ठभूमि, ड्रॉपडाउन सूची नेविगेशन, टैब शैली, प्रदर्शन विकल्प आदि लगभग हर चीज, जो आपको चाहिए, अपने कस्टम एक्शन बार थीम बनाएँ। मैं अपने ऐप्स में इस टेम्पलेट का उपयोग करता हूं, क्योंकि यह मुझे एक्शन बार स्टाइल करने में बहुत जल्दी मदद करता है।

आप इस टेम्पलेट को मेरे GitHub पर पा सकते हैं। यह इस्तेमाल में बहुत आसान है। बस अपने प्रोजेक्ट में मान और ड्रॉएबल डायरेक्टरीज़ कॉपी करें और Android सेट करें: AndroidManifest.xml में एप्लिकेशन तत्व में थीम पैरामीटर:

<application
    ...
    android:theme="@style/Theme.Example">

एंड्रॉइड एक्शन बार स्टाइल जेनरेटर के माध्यम से मेरे टेम्प्लेट में चित्र बनाए गए थे। मैं संसाधनों के लिए अलग-अलग नामकरण सम्मेलन का उपयोग करता हूं। यह सरल स्क्रिप्ट एंड्रॉइड एक्शन बार स्टाइल जेनरेटर के साथ उत्पन्न सभी संसाधनों का नाम बदलकर मेरे स्वयं के कन्वेंशन में उपयोग किया जाता है।







android ant android-viewpager actionbarsherlock