Android SDK لا يرى JDK: حل خطوة بخطوة مع أمثلة بلغة Java

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

«Android SDK installation doesn't find JDK» — ألم مألوف؟

\n

هل تحاول إعداد بيئة التطوير لنظام Android، وتقوم بتشغيل تثبيت SDK، وفي المقابل لا تحصل على رد؟ أو ما هو أسوأ، خطأ أحمر: «Android SDK installation doesn't find JDK». إذا كنت قد بحثت عن هذه العبارة من قبل، فأنت تعلم: على Stack Overflow، هناك آلاف المشاهدات وعشرات الإجابات المخصصة لهذه المشكلة.

\n

لماذا يحدث هذا؟ يبدو أنك قمت بتنزيل JDK وتثبيته، لكن النظام يرفض رؤيته. في هذه المقالة، لن نقوم فقط بتحليل الأسباب، بل سنعرض بأمثلة حقيقية من كود Java كيفية إعداد البيئة بشكل صحيح حتى يتعاون Android SDK أخيرًا مع JDK.

\n

نحن فريق PythonLib، وعلى الرغم من أن اسمنا يحتوي على Python، إلا أننا نعلم أن Java هي أساس تطوير Android. ستكون مادة اليوم مفيدة لكل من يريد حل هذه المشكلة المزعجة مرة واحدة وإلى الأبد.

\n\n

لماذا لا يرى Android SDK JDK؟ ثلاثة أسباب رئيسية

\n

قبل أن نتعمق في الكود، دعنا نفهم العدو جيدًا. خطأ «Android SDK installation doesn't find JDK» يحدث غالبًا بسبب ثلاثة أشياء:

\n
    \n
  • المسار إلى JDK غير صحيح — ببساطة، المثبّت لا يعرف أين يبحث عن Java.
  • \n
  • متغير البيئة JAVA_HOME مفقود — يعتمد Android SDK عليه.
  • \n
  • تضارب الإصدارات — قمت بتثبيت JDK 32-bit بينما النظام 64-bit، أو العكس.
  • \n
\n

الأكثر إزعاجًا هو أنه حتى إذا قمت بتحديد المسار يدويًا في المثبّت، فقد يعود الخطأ. لماذا؟ لأن Android SDK يتحقق ليس فقط من المسار الصريح، ولكن أيضًا من متغيرات البيئة. دعنا نحلل كل حالة مع أمثلة.

\n\n

الخطوة 1: التحقق من تثبيت JDK من الأساس

\n

قبل إعداد أي شيء، تأكد من وجود JDK بالفعل. افتح الطرفية (سطر الأوامر) ونفّذ أمر Java بسيط:

\n
java -version
\n

إذا رأيت شيئًا مثل:

\n
java version "17.0.2" 2022-01-18 LTS\nJava(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)\nJava HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode)
\n

كل شيء على ما يرام — JDK مثبت. إذا لم يتم العثور على الأمر، فهذا يعني أن المشكلة أعمق. تحتاج إلى تنزيل JDK من الموقع الرسمي لـ Oracle أو استخدام OpenJDK. لتطوير Android، يُوصى بالإصدار 11 أو 17.

\n\n

مثال كود: التحقق من إصدار Java من الداخل

\n

إذا كنت تكتب سكريبتًا بلغة Java للتحقق من البيئة، يمكنك استخدام الفئة المدمجة System:

\n
public class CheckJavaVersion {\n    public static void main(String[] args) {\n        String version = System.getProperty("java.version");\n        String home = System.getProperty("java.home");\n        System.out.println("Java version: " + version);\n        System.out.println("Java home: " + home);\n    }\n}
\n

سيقوم هذا الكود بطباعة الإصدار والمسار إلى Java المثبتة. إذا كان java.home يشير إلى مجلد jre وليس jdk، فقد يكون هذا سبب الخطأ — يتطلب Android SDK JDK وليس JRE.

\n\n

الخطوة 2: إعداد متغير JAVA_HOME

\n

هذه هي النصيحة الأكثر شيوعًا على Stack Overflow، وهي تعمل. يجب أن يشير المتغير JAVA_HOME إلى المجلد الجذر لـ JDK، وليس إلى مجلد bin أو jre.

\n

كيف تفعل ذلك؟

\n
    \n
  • Windows: لوحة التحكم ← النظام ← إعدادات النظام المتقدمة ← متغيرات البيئة. أنشئ متغير نظام جديد JAVA_HOME بقيمة مثل: C:\\Program Files\\Java\\jdk-17.
  • \n
  • macOS/Linux: حرّر ملف ~/.bashrc أو ~/.zshrc وأضف السطر: export JAVA_HOME=/usr/lib/jvm/jdk-17.
  • \n
\n

بعد ذلك، أعد تشغيل الطرفية وتحقق:

\n
echo %JAVA_HOME%   # لنظام Windows\necho $JAVA_HOME    # لنظام macOS/Linux
\n\n

المدونات

توصيات الكتب