2014-04-13 15 views
5

पर निर्भर करता है हाय मेरे पास एक एंड्रॉइड लाइब्रेरी प्रोजेक्ट है जो एएआर उत्पन्न करता है।एंड्रॉइड लाइब्रेरी एएआर अन्य लाइब्रेरी

सभी अच्छा है, लेकिन जब मैं एक अन्य परियोजना में आर का उपयोग मैं इस त्रुटि मिलती है:

java.lang.NoClassDefFoundError: com.squareup.picasso.Picasso 

आर, पिकासो का उपयोग करता है यह संभव है जब एक पैदा आर की निर्भरता को निर्यात करने के साथ ही ?

+0

आप अन्य परियोजना में आर का उपयोग कर रहे होते हैं? – CommonsWare

+0

इस तरह: 'सामान्य ग्रुप प्रारूप – redDragonzz

+0

यह माना जाता है का उपयोग कर खजाने { flatDir { dirs 'libs'} mavenCentral() }' और फिर उन्हें सहित अपेक्षित व्यवहार मुझे लगता है होना करने के लिए: https: // groups.google.com/forum/#!topic/adt-dev/0ZAP8AVUZVw! मुझे लगता है कि मुझे पिकासो जार डाउनलोड करना होगा और फिर धीरे-धीरे इसे स्वचालित रूप से शामिल करना होगा, अन्यथा यह नहीं करता है। इसे एक कोशिश दें और उत्तर दें – redDragonzz

उत्तर

6

How can one go about setting up a local maven repo.

चेतावनी: निम्न नुस्खा काम करता है, लेकिन शायद सुधार इस्तेमाल कर सकते हैं, जैसा कि मैंने एक Maven विशेषज्ञ से दूर हूँ। मैंने पिछले साल अपने सीडब्ल्यूएसी पुस्तकालयों के उपयोग के लिए इस दृष्टिकोण को झटका दिया था।

चरण # 1: अपने पुस्तकालय परियोजना की build.gradle फ़ाइल में अपने buildscriptdependencies ब्लॉक करने के लिए classpath 'com.github.dcendents:android-maven-plugin:1.0' जोड़ें। अपने एएआर के बारे में जानकारी प्रदान करने के लिए version और group कथन भी जोड़ें।

चरण # 2: gradle install एएआर संकलित करने और इसे डिफ़ॉल्ट स्थानीय मेवेन भंडार में स्थापित करने के लिए उपयोग करें।

चरण # 3: आमतौर पर, आप mavenLocal()dependencies को अपनी एप्लिकेशन प्रोजेक्ट के ब्लॉक को एआरए को अपनी आर्टिफैक्ट आईडी के माध्यम से जोड़ने के लिए जोड़ देंगे। यह फिर से काम कर रहा है, हालांकि यह थोड़ा सा तोड़ दिया गया था। इसके बजाए, अल्पकालिक कार्यवाही के रूप में maven { url "${System.env.HOME}/.m2/repository" } का उपयोग करें।

तो, उदाहरण के लिए, अपने पुस्तकालय परियोजना build.gradle फ़ाइल शामिल हो सकता है:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.9.+' 
     classpath 'com.github.dcendents:android-maven-plugin:1.0' 
    } 
} 

apply plugin: 'android-library' 
apply plugin: 'android-maven' 

version '0.4.0' 
group 'some.likely.group.name.goes.here' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile 'com.squareup.picasso:picasso:2.2.0' 
    compile fileTree(dir: 'libs', include: '*.jar') 
} 

android { 
    // as normal 
} 

आप gradle install का उपयोग अपने स्थानीय Maven रेपो के लिए जार प्रकाशित करने के लिए होगा। आपका आवेदन परियोजना तो इसकी build.gradle में निम्नलिखित सामान होगा:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.9.+' 
    } 
} 

apply plugin: 'android' 

repositories { 
    mavenCentral() 
    maven { url "${System.env.HOME}/.m2/repository" } // mavenLocal() 
} 

dependencies { 
    compile 'some.likely.group.name.goes.here:name-of-library:0.4.0' 
} 

android { 
    // as normal 
} 

तुम कहाँ की जगह:

XYZ प्रारूप में कुछ

  • 0.4.0 एक संस्करण संख्या के साथ साथ

    • some.likely.group.name.goes.here

    • name-of-library निर्देशिका का नाम होगा एंड्रॉयड पुस्तकालय परियोजना (जैसे, presentation या foo)

  • +0

    किसी भी व्यक्ति के लिए अभी भी इस विधि का उपयोग करने के लिए नोट करना एक महत्वपूर्ण बात है: यह तब से नए ग्रेडल संस्करणों के लिए अपडेट किया गया है। कृपया यहां नया गिटहब देखें: https://github.com/dcendents/android-maven-gradle-plugin और सुनिश्चित करें कि यहां निर्देशों का उपयोग करके 'gradle-wrapper.properties' को बदलकर धीरे-धीरे 2.4 गुना है: http: // tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0 – anddev84

    +0

    कृपया 'gradle install' का उपयोग कैसे करें? मैंने विंडोज़ पर जावा के लिए ग्रेडल स्थापित किया और 'gradle install' की कोशिश की, मुझे यह त्रुटि 'टास्क' इंस्टॉल 'रूट प्रोजेक्ट' बिन 'में नहीं मिली।' –

    +0

    @ विलियमकिनान: यह उत्तर 2.5 साल पुराना है। मैं एक नया समाधान खोजने की सलाह देते हैं। – CommonsWare

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