অ্যান্ড্রয়েড এ mysql jdbc সংযোগকারীর সাথে সংযোগ করার সময় ClassNotFoundException

আমি কিছু উত্তর পেয়েছি কিন্তু কিছুই দরকারী ছিল।

আমি mysql-connector-java-5.1.7-bin.jar কে নির্দেশিত লাইব্রেরিতে এবং আমার মূল বর্গ কার্যকলাপে নিম্নলিখিত পদ্ধতিটি যোগ করা।

private void getServerData(String id, String type) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
{
    Log.i("Database Connection", " requesting data from server");

    Class.forName("com.mysql.jdbc.Driver").newInstance();               
    Connection con = DriverManager.getConnection("jdbc:mysql://10.0.2.2:3306/db_easy_maintenance", "root", "maintenance");
    Statement stm = con.createStatement();
    ResultSet rs = stm.executeQuery("SELECT Name FROM industrial_object");
    String entry;
    while(rs.next())
    {
        entry=rs.getString("Name");
        Log.i("Database Connection", "getting " + entry);
    }

    con.close();

}

আমি আমার অ্যাপটি শুরু করি এবং একটি java.lang.ClassNotFoundException পান: com.mysql.jdbc.Driver java.lang.Class.classForName এ।

যদি আমি চেষ্টা না করি ... ধরা ... তাহলে আমি কম্পাইল করার আগে এই ব্যতিক্রমটি পেতে পারি।

কোনো সমস্যা?

0
হ্যা হ্যা. উল্লেখিত লাইব্রেরিগুলি "রেফারেন্সকৃত লাইব্রেরি" - মানে eclipse -> প্যাকেজ এক্সপ্লোরার -> আমার প্রোজেক্ট
যোগ লেখক Hei Ranch, উৎস
আপনি কি আপনার ক্লাসপথে মাইএসকিউএল সংযোগকারী জারটি যোগ করেছেন? "যোগ করা হয়েছে ... রেফারেন্স লাইব্রেরিতে ..." দ্বারা আপনি কি বোঝাতে চান তা স্পষ্ট নয়।
যোগ লেখক QuantumMechanic, উৎস

5 উত্তর

অ্যান্ড্রয়েড একটি ভিন্ন ভিন্ন বাইটকোড ব্যবহার করে এটি কাজ নাও করতে পারে। মাইক্রোসফট JDBC লাইব্রেরীটি সঠিকভাবে ডালভিকের বিন্যাসে অনুবাদ করা হয়েছে কি না তা পরীক্ষা করার জন্য Tyr। ডালভিকের একের মধ্যে JVM বাইটেককে অনুবাদ করার জন্য dex নামক একটি সরঞ্জাম আছে। যদি JDBC ড্রাইভারগুলি এমন কোন ক্লাস না করে যা অ্যানড্রয়েডের জন্য পোর্টেবল বা কিছু নেটিভ কোড থাকে - আপনি এটিকে অ্যান্ড্রয়েড ব্যবহার করতে পারবেন না

0
যোগ
এই টুলটি খুঁজে বের করতে পারবেন না এমনকি গুগল দরকারী এন্ট্রি প্রদর্শন না।
যোগ লেখক Hei Ranch, উৎস

এটি কাজ করা উচিত, আপনি অন্য JavaSDK এবং অন্য একটি অ্যান্ড্রয়েড প্ল্যাটফর্মের সাথে চেষ্টা করা উচিত হতে পারে

0
যোগ
আপনি SDK কি সুপারিশ?
যোগ লেখক Hei Ranch, উৎস

যাচাই করুন যে লাইব্রেরিটি রপ্তানি করা হয়েছে ( এক্সপোর্ট করা হয়েছে = "সত্য" এটিকে .classpath ফাইলে প্রবেশ করা হয়েছে)। আপনি Eclipse- এ প্রজেক্ট সেটিংসে যথাযথ ট্যাবে এটি করতে পারেন।

0
যোগ
ঠিক আমার ক্লাসপাথ ফাইল thats:
যোগ লেখক Hei Ranch, উৎস
দুর্ভাগ্যজনকভাবে কাজ না
যোগ লেখক Hei Ranch, উৎস

JDBC অনিয়মিতভাবে অ্যান্ড্রয়েড ব্যবহার করা হয়, এবং আমি অবশ্যই এটি সুপারিশ করবে না।

JDBC উচ্চ-ব্যান্ডউইথ, নিম্ন-ভ্রান্তি, অত্যন্ত নির্ভরযোগ্য নেটওয়ার্ক সংযোগগুলির জন্য ডিজাইন করা হয়েছে (যেমন, ডেক্সটপ সার্ভারে ডাটাবেস সার্ভারে ডেক্সটপ সার্ভার)। মোবাইল ডিভাইসগুলি এইগুলির সামান্য প্রস্তাব দেয়, এবং তাদের মধ্যে কেউই ধারাবাহিকভাবে নয়।

তাই বিকল্প যে আমি আপনাকে ব্যবহার করতে পরামর্শ:

আপনার ডাটাবেসের কাছাকাছি একটি ওয়েব পরিষেবা তৈরি করুন এবং এন্ড্রয়েড থেকে অ্যাক্সেস করুন।

পার্শ্ব বেনিফিট হিসাবে, আপনি নিরাপত্তা উন্নতি (বনাম আপনার ডাটাবেস খুলুন খোলা), ক্লায়েন্ট থেকে কিছু ব্যবসায়িক লজিক অফলোড করতে পারেন, অন্যান্য প্ল্যাটফর্ম (যেমন, ওয়েব বা ওয়েব ভিত্তিক মোবাইল কাঠামো) ইত্যাদি সমর্থন করতে পারেন।

0
যোগ
@ কে_আনাস: আপনি কি বলেন আপনি কি কোড নমুনা দেখবেন? আমার মানে মাইএসকিউএল ডিবি অ্যাক্সেস করার জন্য ওয়েব সার্ভিস তৈরি করা।
যোগ লেখক GAMA, উৎস
আমি জানি এবং আমার প্রাক্তন সংস্করণ এই ধরনের সংযোগ ব্যবহার করে, কিন্তু আমার বস ভিন্ন মনে করে। আমরা কেবল একটি LAN সংযোগ ব্যবহার করি এবং এই অ্যাপ্লিকেশনটি প্রকাশ করতে চাই না।
যোগ লেখক Hei Ranch, উৎস

see: http://developer.android.com/search.html#q=dx&t=0 and Android JDBC not working: ClassNotFoundException on driver - my answer on the bottom gives ridiculously specific instructions, although I am curious how switching to 1.6 was useful.

0
যোগ
ঠিক আছে আমি মাইএসকিউএল-সংযোগকারী-জাভা-5.1.7 এর পরিবর্তে আপনার লাইব্রেরি ব্যবহার করেছি
যোগ লেখক Hei Ranch, উৎস
মাইএসকিউএল-সংযোগকারী-জাভা 5.1.20 আমার জন্যও খারাপ ছিল
যোগ লেখক Hei Ranch, উৎস