سؤال

هذا سؤال من جزأين حول إضافة مكتبة طرف ثالث (JAR) إلى مشروع Android في Eclipse.

الجزء الأول من السؤال هو ، عندما أحاول إضافة جرة طرف ثالث (مكتبة) إلى مشروع Android الخاص بي ، أحصل أولاً على مشكلة

خطأ في تحليل XML: بادئة غير محدودة

لأنني أحاول استخدام فصل من تلك الجرة (وأحتاج إلى البادئة المحددة بطريقة أو بأخرى). ماذا يحدث هنا؟

ثانياً ، (بعد إصلاح ذلك-يتم إعطاء الإجابة أدناه) ، لا يعمل طلبي على Android وأكتشف عبر مصحح الأخطاء (Logcat) أن الفصل الذي أحاول استهلاكه غير موجود.

سبب: java.lang.classnotfoundException: com.github.droidfu.widgets.webimageview ...

لماذا ، عندما لا أحصل على أي تجميع أو خطأ رابط في Eclipse ، هل لديها هذه المشكلة في المحاكي؟

هذان السؤالان بلاغا لأنني سأجيب عليهما بنفسي أدناه. تنزل المشاركات الأخرى في هذا المنتدى إلى المشكلة وفي أماكن أخرى ، هناك نقاش ، لكنني أشعر أنه يمكنني أن أكون مفيدًا بشكل أكثر صراحة للرجل القادم ليأتي.

هل كانت مفيدة؟

المحلول

الآن لمشكلة الطبقة المفقودة.

أنا مطور Eclipse Java EE وكنت في العادة لسنوات عديدة من إضافة مكتبات الطرف الثالث عبر آلية "مكتبة المستخدم" في مسار البناء. بالطبع ، هناك 3 طرق على الأقل لإضافة مكتبة تابعة لجهة خارجية ، فإن تلك التي أستخدمها هي الأكثر أناقة ، في رأيي المتواضع.

ومع ذلك ، لن ينجح هذا بالنسبة إلى Android ، الذي لا يمكن لـ Dalvik "JVM" التعامل مع فئة عادية من Java ، ولكن يجب أن يتم تحويلها إلى تنسيق خاص. لا يحدث هذا عند إضافة مكتبة بالطريقة التي لن أفعلها.

بدلاً من ذلك ، اتبع الإرشادات (المتاحة على نطاق واسع) لاستيراد مكتبة الطرف الثالث ، ثم إضافتها باستخدام مسار الإنشاء (مما يجعل من المعروف أن يكسبه لأغراض التجميع). هنا هو خطوة بخطوة:

  1. قم بتنزيل المكتبة على نظام تطوير المضيف الخاص بك.
  2. انشاء مجلد جديد، libs, ، في مشروع Eclipse/Android الخاص بك.
  3. انقر على اليمين libs واختر استيراد -> عام -> نظام الملفات ، ثم بعد ذلك ، تصفح في نظام الملفات للعثور على دليل الوالدين للمكتبة (أي: حيث قمت بتنزيله إلى).
  4. انقر فوق "موافق" ، ثم انقر فوق اسم الدليل (وليس مربع الاختيار) في الجزء الأيسر ، ثم تحقق من الجرة ذات الصلة في الجزء الأيمن. هذا يضع المكتبة في مشروعك (جسديًا).
  5. انقر بزر الماوس الأيمن على مشروعك ، اختر Build Path -> تكوين مسار الإنشاء ، ثم انقر فوق علامة تبويب المكتبات ، ثم أضف الجرار ... ، انتقل إلى جرة جديدة في libs دليل وإضافته. (هذه ، بالمناسبة ، هي اللحظة التي يتم فيها تحويل الجرة الجديدة الخاصة بك للاستخدام على Android.)

ملاحظة

قد لا تكون هناك حاجة إلى الخطوة 5 ، إذا تم تضمين LIB بالفعل في مسار البناء الخاص بك. فقط تأكد من وجوده أولاً قبل إضافته.

ما فعلته هنا ينجز شيئين:

  1. يتضمن جرة Dalvik المحفوظة في مشروع Android الخاص بك.
  2. تتيح تعريفات Java لـ Eclipse من أجل العثور على فئات الطرف الثالث عند تطوير (أي ، تجميع) رمز المصدر لمشروعك.

نصائح أخرى

تأكد من أن جرار الطرف الثالث الخاص بك موجودة في مجلد مشاريعك "libs" وسيتم وضعها في .APK عند حزم التطبيق الخاص بك. قد ترى أخطاء وقت التشغيل على الجهاز إذا لم يتم دعم شيء ما في الجرة ، لكن بخلاف ذلك ، حققت نجاحًا كبيرًا في هذا.

إعداد مشروع مكتبة

يعد مشروع المكتبة مشروع Android قياسي ، بحيث يمكنك إنشاء مشروع جديد بنفس الطريقة التي يمكنك بها مشروع تطبيق جديد.

عندما تقوم بإنشاء مشروع المكتبة ، يمكنك تحديد أي اسم وتطبيق الحزمة ، وتعيين حقول أخرى حسب الحاجة ، كما هو موضح في الشكل 1.

بعد ذلك ، قم بتعيين خصائص المشروع للإشارة إلى أنه مشروع مكتبة:

في مستكشف الحزمة ، انقر بزر الماوس الأيمن فوق مشروع المكتبة وحدد الخصائص. في نافذة الخصائص ، حدد مجموعة خصائص "Android" على اليسار وحدد خصائص المكتبة على اليمين. حدد مربع الاختيار "IS Library" وانقر فوق تطبيق. انقر فوق "موافق" لإغلاق نافذة الخصائص. تم تمييز المشروع الجديد الآن كمشروع مكتبة. يمكنك البدء في نقل التعليمات البرمجية المصدر والموارد فيه ، كما هو موضح في الأقسام أدناه.

إذا كنت تستخدم الإصدار 22 ADT ، فأنت بحاجة إلى التحقق من تبعيات Android ومكتبات Android الخاصة في علامة التبويب Order & Export في مسار إنشاء المشروع

أولاً ، مشكلة البادئة المفقودة.

إذا كنت تستهلك شيئًا ما في ملف التخطيط الذي يأتي من طرف ثالث ، فقد تحتاج إلى استهلاك بادئة ذلك أيضًا ، وهو شيء مثل "Droidfu:" الذي يحدث في عدة أماكن في بنية XML أدناه:

<com.github.droidfu.widgets.WebImageView android:id="@+id/webimage"
          android:layout_width="75dip"
          android:layout_height="75dip"
          android:background="#CCC"
          droidfu:autoLoad="true"
          droidfu:imageUrl="http://www.android.com/images/opensourceprojec.gif"
          droidfu:progressDrawable="..."
          />

يخرج هذا من الجرة ، ولكن ستحتاج أيضًا إلى إضافة "XMLNS: Droidfu" الجديد

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:droidfu="http://github.com/droidfu/schema"
      ...>

أو تحصل على خطأ بادئة غير محدودة. بالنسبة لي ، كان هذا فشلًا في نسخ ولصق كل المثال المقدم من صفحات مكتبة الطرف الثالث.

خطأ في تحليل XML: بادئة غير محدودة

المورد '/playteddy/res' غير موجود.

حصلت على خطأين أعلاه وأخيراً حللت ذلك.

انقر بزر الماوس الأيمن على مشروعك -> الخصائص -> Java Build Path -> GoogleadMobadsdk (حدد ووضعه في الأعلى) ، ثم تقوم بتشغيل وتحل المشكلة. يتم حل خطأ وقت التشغيل الخاص بي.

ضع المصدر في مجلد خارج مساحة عمل Yourt. Rightclick في مشروع explorer ، وحدد "استيراد ..."

استيراد المشروع في مساحة العمل الخاصة بك كمشروع Android. حاول بنائه ، والتأكد من تمييزه كمشروع مكتبة. تأكد أيضًا من أنه يتم بناء مع دعم Google API ، إن لم يكن ستحصل على أخطاء ترجمة.

ثم ، في النقر بزر الماوس الأيمن على مشروعك الرئيسي في Explorer Project. حدد الخصائص ، ثم حدد Android على اليسار. في قسم المكتبة أدناه ، انقر فوق "إضافة" ..

يجب أن تكون مكتبة MapView-Balloons متاحة الآن لإضافتها إلى مشروعك ..

انتقل إلى Build Path في Eclipse ، ثم انقر فوق الطلب وتصديره ، ثم تحقق من المكتبة/الجرة ، ثم انقر فوق الزر UP لنقله إلى الجزء العلوي من القائمة لتجميعه أولاً.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top