2012-06-05 11 views
12

मैं विंडोज़ पर ग्रहण चला रहा हूं।java.lang.ClassNotFoundException: org.postgresql.Driver, एंड्रॉइड

बाद this tutorial मैं JDBC4 डाउनलोड किया है, परियोजना> गुण> बाहरी जार जोड़ने का उपयोग कर अपने निर्माण पथ में जोड़ा, फ़ाइल के लिए ब्राउज़ किया है, यह (.classpath फ़ाइल सही lib पथ दिखाता है) में काम किया।

पैकेज मेरे संदर्भित पुस्तकालय फ़ोल्डर में प्रकट होता है, इसलिए मैं ट्यूटोरियल जारी रखता हूं।

import java.sql.Connection; 
    import java.sql.DriverManager; 
    import java.sql.PreparedStatement; 
    import java.sql.SQLException; 

    .... 

    public void open() 
     { 
    try { 
     Class.forName("org.postgresql.Driver"); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 

    try { 
     conn = DriverManager.getConnection(url, username, password); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 

मुझे लगता है कि यह है कि के रूप में सरल हो जाएगा, लेकिन मैं

java.lang.ClassNotFoundException: org.postgresql.Driver 

के साथ शुरू इस बड़े लंबे स्टैक ट्रेस (मैं यदि आवश्यक हो तो अधिक प्रदान कर सकते हैं) के साथ हिट हो

मैं include org.postgresql.*; की कोशिश की लेकिन इससे कोई मदद नहीं मिली। मैंने जेडीबीसी 3 की भी कोशिश की है लेकिन वहां कोई भाग्य नहीं है।

मैंने Driver JDBC PostgreSQL with Android पर देखा जो एक अस्पष्ट उत्तर प्रदान करता है कि मैं केवल HTTP + JSON का उपयोग कर बेहतर होगा। जो मैंने कभी नहीं उपयोग किया है।

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

+1

क्या आपने किसी भी मौके से 'libs' के स्थिर में' lib' फ़ोल्डर में .jar रखा था? चूंकि [एडीटी आर 17] (http://tools.android.com/recent/dealingwithdependenciesinandroidprojects), बाहरी स्थानों से संदर्भित पुस्तकालयों को * .k में पैक नहीं किया जाएगा। नतीजा यह है कि आपकी परियोजना ठीक से संकलित होगी, लेकिन रनटाइम पर आप लापता पुस्तकालयों के कारण 'NoClassDefFoundError' में भाग लेंगे। रास्ते में बहुत सारे समान प्रश्नोत्तर हैं; जैसे [यह एक] (http://stackoverflow.com/a/9820881/1029225)। –

+0

इसे काम करने के लिए मिला। सीखने के लिए बहुत कुछ: पी धन्यवाद! – user1438048

उत्तर

0

यह एक क्लासस्पैट मुद्दा है; जब पोस्ट लोडर इसे लोड करने का प्रयास करता है तो PostgreSQL जेडीबीसी ड्राइवर उपलब्ध नहीं है। आपको इसे अपने क्लासस्पैट में सही ढंग से जोड़ना होगा।

यदि यह ग्रहण में काम करता है, तो ऐसा इसलिए है क्योंकि बिल्ड पथ पर एक JAR जोड़ना क्लासस्पैट में जोड़ रहा है। आपको समझना होगा कि क्लासस्पैट ग्रहण प्रशिक्षण पहियों के बिना आपकी मदद करने के लिए कैसे काम करता है।

-2

मान लीजिए कि आपकी निर्भरता सही तरीके से कॉन्फ़िगर की गई है (libs directory in Android SDK version 17 or above देखें, जैसा कि एक टिप्पणी में बताया गया है), आप 9.2 ड्राइवर को ड्राइवर प्रबंधक के साथ स्पष्ट रूप से पंजीकरण करके काम करने में सक्षम होना चाहिए।

बजाय:

Class.forName("org.postgresql.Driver"); 

उपयोग:

DriverManager.register(new org.postgresql.Driver()); 

(। मैं भी 9.3-1100-jdbc41 जार के साथ की कोशिश की है, लेकिन यह काम नहीं होगा)

कृपया ध्यान दें कि, explained by Craig Ringer in an answer to a duplicate question के रूप में, एंड्रॉइड से जेडीबीसी का उपयोग करना शायद ही कभी एक अच्छा विचार है, क्योंकि जेडीबीसी कनेक्शन आम तौर पर एंड्रॉइड उपकरणों द्वारा उपयोग किए जाने वाले नेटवर्क उपयोग पैटर्न के लिए उपयुक्त नहीं हैं।

5

आप lib फ़ोल्डर (WebContent-वेब-INF-लिब), और राइट क्लिक जार पर में जार पैकेज रखना चाहिए पैकेज-निर्माण पथ

0

डाउनलोड कर रहा है निर्माण करने के लिए पथ-जोड़ सकते हैं और JDBC JAR फ़ाइल जोड़ने आपके द्वारा उपयोग किए जा रहे टूल के निर्मित पथ पर एक अस्थायी समाधान हो सकता है क्योंकि उपरोक्त समाधानों में से कोई भी मेरे मामले में काम नहीं करता है।

4

Mvnrepository में उल्लिखित आपके प्रोजेक्ट में पोस्टग्रेएसक्यूएल जेडीबीसी चालक को जोड़ने की आवश्यकता है।

Grandle:

// http://mvnrepository.com/artifact/postgresql/postgresql 
compile group: 'postgresql', name: 'postgresql', version: '9.0-801.jdbc4' 

Maven:

<dependency> 
    <groupId>postgresql</groupId> 
    <artifactId>postgresql</artifactId> 
    <version>9.0-801.jdbc4</version> 
</dependency> 

भी कर सकते हैं downloadJAR और मैन्युअल रूप से अपनी परियोजना के लिए आयात।

+1

क्या आप वाकई उपयोग करने के लिए सही हैं? https://mvnrepository.com/artifact/org.postgresql/postgresql – Mygod

+0

@ मैगोड धन्यवाद, मैंने अपना लिंक अपडेट किया। –

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