2015-12-18 14 views
13

पर सार्वभौमिक ट्विन इंजन के लिए गायब है मैं यूनिवर्सल टिव इंजन का उपयोग करने वाले लिबडक्स प्रोजेक्ट पर काम कर रहा हूं। मैंने इस पृष्ठ पर सभी चरणों का पालन किया है: https://github.com/libgdx/libgdx/wiki/Universal-Tween-Engine मेरी परियोजना में यूनिवर्सल ट्विन इंजन लाइब्रेरी स्थापित करने के लिए।एंड्रॉइड स्टूडियो 'लाइब्रेरी के रूप में जोड़ें' लिबगैक्स

इन सभी चरणों को पूरा करने के बाद परियोजना मेरे लैपटॉप पीसी पर जुर्माना (एंड्रॉइड और डेस्कटॉप दोनों) का निर्माण और चलाने के लिए, और ट्यून इंजन इंजन से आने वाली एनिमेशन पूरी तरह से काम करेगी।

हालांकि जब भी मैं डेस्कटॉप एप्लिकेशन चलाने की कोशिश करता हूं तो मेरे डेस्कटॉप कंप्यूटर पर यह ट्यूनएक्सेसर क्लास पर फेंकने वाले NoClassDefFoundException के साथ क्रैश हो जाता है जो यूनिवर्सल ट्विन इंजन का हिस्सा है। एप्लिकेशन सही ढंग से संकलित करता है और मैं कक्षा पर ctrl-क्लिक कर सकता हूं कि यह कह रहा है कि यह नहीं मिल रहा है और यह उस वर्ग के स्रोत कोड को खोलता है, इसलिए मुझे पता है कि आईडीई का कम से कम कुछ हिस्सा इस वर्ग को ढूंढ रहा है। स्रोत कोड संपादक में किसी भी लाइब्रेरी कक्षाओं पर कोई लाल रेखांकित त्रुटियां नहीं हैं। दिलचस्प रूप से मेरे डेस्कटॉप कंप्यूटर पर एंड्रॉइड एप्लिकेशन चला सकता है और यह क्रैश नहीं होता है, और एनिमेशन पूरी तरह से काम करते हैं। केवल डेस्कटॉप संस्करण काम नहीं करेगा।

इस मैं कई चीजें हैं जो जार फ़ाइलों को ढूंढने में 'प्रोजेक्ट' दृश्य पर स्विच करने, सही उन्हें क्लिक करें और Add as a Library मैं अन्य परियोजनाओं पर अतीत में यह करने के लिए मिला है चुनें कहना करवाते हैं दौड़े हैं समस्याओं का निवारण करने की कोशिश में और यह वास्तव में मेरे लिए काम किया था।

लेकिन मेरी समस्या Add as a Library विकल्प संदर्भ मेनू से याद आ रही है जब मैं सही मेरे डेस्कटॉप पीसी पर इसे क्लिक करें है:

enter image description here

मैं परियोजना की सफाई की कोशिश की है। मैं एंड्रॉइड स्टूडियो को पूरी तरह से अनइंस्टॉल करता हूं और एक नई प्रति डाउनलोड करता हूं और इसे इंस्टॉल करता हूं। ऐसा करने के बाद भी वही परिणाम प्राप्त करें।

क्या निर्धारित करता है कि "लाइब्रेरी के रूप में जोड़ें" विकल्प संदर्भ मेनू में दिखाएगा या नहीं जब जार फ़ाइल पर राइट क्लिक करें?

यूनिवर्सल टिव इंजन इंजन लाइब्रेरी का उचित उपयोग करने के लिए मुझे अपने डेस्कटॉप पीसी पर क्या करना है?

संपादित करें: gradle.build के प्रासंगिक अनुभाग।

project(":desktop") { 
    apply plugin: "java" 
    dependencies { 
     compile project(":core") 
     compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" 
     compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop" 
     compile fileTree(dir: '../libs', include: '*.jar') // This one is not listed but I added anyway 
    } 
} 
//... 
project(":android") { 
    apply plugin: "android" 
    configurations { natives } 
    dependencies { 
     compile project(":core") 
     compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" 
     compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi" 
     natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a" 
     natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86" 
     compile fileTree(dir: '../libs', include: '*.jar') 
    } 
} 
//... 
project(":core") { 
    apply plugin: "java" 
    dependencies { 
     compile "com.badlogicgames.gdx:gdx:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" 
     compile fileTree(dir: '../libs', include: '*.jar') 
    } 
} 

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

project_root_dir/ 
    android/ 
    core/ 
    desktop/ 
    html/ 
    ios/ 
    libs/ 
     tween-engine-api.jar 
     tween-engine-api-sources.jar 
+2

अपने build.gradle फ़ाइल अनुप्रयोग के लिए कैसा रहने वाला है? क्या इसमें फ़ाइल संकलित करने के समान एक रेखा है (डीआईआर: 'libs', इसमें शामिल हैं: ['* .jar']) '? आप प्रोजेक्ट स्ट्रक्चर (फाइल -> प्रोजेक्ट स्ट्रक्चर, अपने मॉड्यूल पर क्लिक करें, निर्भरता टैब पर क्लिक करें, प्लस साइन पर क्लिक करें -> फाइल निर्भरता) पर क्लिक करें –

+1

@ विनीडेन्डेकर मैंने अपने ग्रेडल के रिलेवेंट बिट्स को जोड़ा है। फाइल बनाएं हां वे उन पंक्तियों को शामिल करते हैं। जब मैं प्रोजेक्ट स्ट्रक्चर और निर्भरता टैब को देखता हूं तो दोनों जार फाइलें पहले से ही 'कोर' और 'एंड्रॉइड' मॉड्यूल के तहत सूचीबद्ध होती हैं। लेकिन डेस्कटॉप के तहत सूचीबद्ध नहीं है। यदि मैं उन्हें डेस्कटॉप मॉड्यूल में जोड़ने का प्रयास करता हूं तो मैं ऐसा नहीं कर सकता क्योंकि यह मुझे केवल डेस्कटॉप निर्देशिका के अंतर्गत ब्राउज़ कर रहा है, लेकिन वे प्रोजेक्ट रूट में libs निर्देशिका के अंदर एक स्तर ऊपर हैं। – FoamyGuy

+1

आप पहले से ही/libs/फ़ोल्डर में सभी जार शामिल कर रहे हैं। आपको इसे जोड़ने की आवश्यकता नहीं है, क्योंकि यह पहले ही जोड़ा जा चुका है। 'फ़ाइल संकलित करें (डीआईआर:' ../libs ', इसमें शामिल हैं:' * .jar ') ' – Knossos

उत्तर

1

मैं एक ही समस्या का सामना करना पड़ रहा था ... मैं इसे इस तरह हल: बस परियोजना के तहत फ़ोल्डर libs के तहत tween.jar फ़ाइलें जोड़ सकते हैं और में जोड़ना build.gradle

project(":core") { 
    apply plugin: "java" 


    dependencies { 
     compile fileTree(dir: '../libs', include: 'tween-engine-api*.jar') 
     compile "com.badlogicgames.gdx:gdx:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" 
     compile "com.badlogicgames.box2dlights:box2dlights:$box2DLightsVersion" 
     compile "de.tomgrill.gdxfacebook:gdx-facebook-core:1.1.1" 
     compile "de.tomgrill.gdxdialogs:gdx-dialogs-core:1.0.0" 
     compile "net.dermetfan.libgdx-utils:libgdx-utils-box2d:0.13.2" 
     compile "net.dermetfan.libgdx-utils:libgdx-utils:0.13.2" 
     compile "org.robovm:robopods-google-mobile-ads-ios:1.6.0" 
     compile "org.robovm:robopods-google-analytics-ios:1.6.0" 
    } 
} 
+0

मैंने पहले ही यह कर लिया है। यह समस्या का समाधान नहीं करता है। – FoamyGuy

+0

क्या आप सकारात्मक रूप से सुनिश्चित हैं कि आपके पास दोनों कंप्यूटरों में एंड्रॉइड स्टूडियो के बिल्कुल समान संस्करण हैं? – laymelek

+0

मूल रूप से दोनों कंप्यूटरों में एंड्रॉइड स्टूडियो का एक ही संस्करण था (जो 1.5 था) मैंने पूरी तरह से अनइंस्टॉल किया और मेरे डेस्कटॉप पर नवीनतम संस्करण डाउनलोड किया, इसलिए अब इसमें 1.5.1 है और मेरे लैपटॉप में अभी भी 1.5 है। हालांकि मैं अपने डेस्कटॉप पर अनइंस्टॉल/पुनः स्थापित करने से पहले एक ही संस्करण पर था और डेस्कटॉप पर काम नहीं कर रहा था, लेकिन लैपटॉप पर काम कर रहा था। – FoamyGuy

1

यदि आप वास्तव में "लाइब्रेरी के रूप में जोड़ें" विकल्प देखना चाहते हैं। अपनी एंड्रॉइड निर्भरताओं को build.gradle में निम्नानुसार अपडेट करें ('.jar' को हटाकर)।

project(":android") { 
apply plugin: "android" 
configurations { natives } 
dependencies { 
    compile project(":core") 
    compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" 
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi" 
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a" 
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" 
    compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" 
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi" 
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a" 
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86" 
    compile fileTree(dir: '../libs', include: '') //removed '*.jar' 
} 

}

या, नहीं तो आप

फ़ाइल> परियोजना संरचना के आधार पर आपके निर्भरता संपादन के बिना अपने पुस्तकालय में जोड़ सकते हैं> Dependencies-> Add-> फ़ाइल निर्भरता

+0

क्या समस्या हल हो गई है? – SachinS

+0

मैंने समस्या हल कर ली है, मैं जल्द ही जो करना चाहता हूं उसे पोस्ट करूंगा। मैंने बस निर्भरता रेखा को बदलने की कोशिश की है जैसे कि 'compile fileTree (dir:' ../libs ', इसमें शामिल हैं:' ')' अभी अभी और मेरे पास अभी भी लाइब्रेरी विकल्प के रूप में जोड़ें नहीं है। मैंने इसे ग्रेडल सिंक करने दिया, और एएस को फिर से शुरू करने का प्रयास किया और अभी भी संदर्भ मेनू में मौजूद 'लाइब्रेरी के रूप में जोड़ें' विकल्प नहीं है। – FoamyGuy

+0

मैंने 'फ़ाइल-> परियोजना संरचना-> निर्भरता-> जोड़ें-> फ़ाइल निर्भरता' का उपयोग करने का भी प्रयास किया।उस बारे में बात यह है कि यह मॉड्यूल निर्देशिका के अंदर बंद कर दिया गया है, यह मुझे एक स्तर तक जाने नहीं देगा जिससे परियोजना की संरचना की जा सके। मैंने मॉड्यूल के अंदर libs फ़ोल्डर की प्रतिलिपि डालने का प्रयास किया और इसे इस मेनू में जोड़ दिया और इससे मेरी समस्या ठीक नहीं हुई। इसे हल करने के लिए मुझे वास्तव में इस मेनू को खोलना था और वहां मौजूद 2 प्रविष्टियों को हटा देना था। – FoamyGuy

4

मैं सिर्फ इस लाइन पर निर्भरता के रूप में जोड़ूंगा:

compile files('../libs/tween-engine-api.jar') 

कि इसके बाद के संस्करण लाइन इस लाइन बदल दिया जाना चाहिए:

compile fileTree(dir: '../libs', include: '*.jar') 

मैं कल्पना कर सकता है कि स्रोत कोड फ़ाइल कुछ टूट रहा है। आम तौर पर मैं एक साथ कई जार आयात करने से बचूंगा, मैं हमेशा उन्हें हाथ से चुनता हूं।


एक वैकल्पिक विचार के रूप में आप अंक 6 और 7 readme file से कोशिश की थी?

अपनी निर्भरता अनुभाग में इस जोड़ना:

compile "aurelienribon:tweenengine:6.3.3" 
compile "aurelienribon:tweenengine:6.3.3:sources" 

और जोड़ने के इस दो Maven परियोजना जड़ में अपने build.gradle फाइल करने के लिए repositoried:

maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 
maven { url "https://oss.sonatype.org/content/repositories/releases/" } 
+0

मैंने एक बिंदु पर जार फ़ाइलों को नाम से लक्षित करने का प्रयास किया जैसा कि आप सुझाव देते हैं और इससे समस्या हल नहीं हुई है। लेकिन हालांकि इस मामले में यह मुद्दा नहीं था, मैं इस तरह से करने का इरादा रखता हूं। – FoamyGuy

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