سؤال

لقد قمت للتو بتنزيل وتثبيت Android SDK الجديد. أردت إنشاء تطبيق بسيط لاختبار قيادة ذلك.

أنشأ المعالج هذا الرمز:

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

لكن كسوف يعطيني الخطأ

ص لا يمكن حلها

عبر الانترنت

setContentView(R.layout.main);

لماذا ا؟

ملاحظة: لدي ملف XML باسم main.xml تحت res/layout/.

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

المحلول 7

ما قاله كان صحيحا

R هي فئة تم إنشاؤها تلقائيا تحمل الثوابت المستخدمة لتحديد الموارد الخاصة بك. إذا لم يكن لديك ملف R.Java (سيكون GEN / EU.MAURIZIOPZ.GPS / R.JAVA في> الكسوف مع 1.5 SDK) أود أن أوصي بإغلاق مشروعك وإعادة فتحه أو الذهاب إلى> مشروع> بناء الكل (واختيار "بناء تلقائيا" بينما هناك على النحو الموصى به بواسطة> JOSEF). إذا لم يعمل ذلك بدلا من محاولة إجراء مشروع جديد، إذا تم إعادة إنشاء المشكلة من> المشاركة هنا مرة أخرى وسنذهب إلى مزيد من التفاصيل.

لكنني اكتشفت أن هناك مشكلة أخرى كانت تسبب أول واحد. لم يكن لدى الأدوات الموجودة في دليل SDK الأذونات التي يجب تنفيذها، لذلك كان مثل غير موجود للكسوف، وبالتالي لم يبني R.java ملف.

لذلك تعديل إذن وتحديد "بناء تلقائيا" حل المشكلة.

نصائح أخرى

بعد تتبع هذه المشكلة أيضا، وجدت هذه الملاحظة في وثائق Android:

http://source.android.com/source/using-eclipse.html

* ملاحظة: Eclipse أحيانا يحب إضافة عبارة "استيراد Android.r" في الجزء العلوي من الملفات التي تستخدم الموارد، خاصة عندما تطلب من الكسوف إلى فرز أو إدارة الواردات بطريقة أخرى. هذا سوف يسبب الخاص بك صنع خرق. ابحث عن بيانات الاستيراد الخاطئة هذه وحذفها. *

أثناء المرور من خلال دروس عينة Android، كنت في كثير من الأحيان استخدام كنترول + يحول + في أمر "تنظيم الواردات" وإنشاء أي بيانات استيراد مفقودة. في بعض الأحيان سيولد هذا بيان الاستيراد غير صحيح الذي من شأنه إخفاء R.java فئة يتم إنشاؤها تلقائيا عند البناء.

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

كلما حصلت على

ص لا يمكن حلها

ثم تحقق من /res يجب أن يكون هناك بعض الملفات التي لديها بعض الملفات التي لها بعض الأخطاء والتي تمنع تطبيق التطبيق. على سبيل المثال، قد يكون ذلك ملف تخطيط أو قد يكون بسبب وجود مورد مفقود، لكنك تعرفه بالفعل في ملف XML.

إذا كان لديك أي صور إضافية، حتى غير المستخدمة (!) أو غير المستخدمة (!) في مجلد مثل RES / Drawables-MDPI التي لا تمتثل لاتفاقيات تسمية الملفات (قد تحتوي فقط [A-Z0-9_.]، قد لا تولد فئة R.JAVA، مما تسبب في سلسلة الأحداث جميع الوظائف الأخرى المشار إليها. آمل أن يساعد!

يشتمل مشروعي على R.JAVA.AT في البداية، R.Layout.Main يعمل بشكل جيد. ولكن بعد إضافة بعض الرمز لا يعمل، والخطأ هو r.layout.main لا يمكن حلها. ما هي المشكلة ب

انظر إلى الواردات الخاصة بك. الفرص هي أن الخط:

import android.R;

سيكون هناك. إذا كانت هذه هي الحالة، فقم بإزالته، بحيث يقوم مشروعك بحل R ليس مع فئة موارد أندرويد الافتراضية، ولكن مع الناتج تلقائيا من المجلد الخاص بك / res.

وشيء آخر قد يسبب هذه المشكلة:

لقد قمت بتثبيت ADT الجديد (v. 22). توقف عن الخلق gen المجلد الذي يشمل R.java. وبعد كان الحل أيضا تثبيت أدوات إنشاء Android SDK الجديدة من Android SDK Manager.

وجد الحل هنا

R.java هو ملف أن يوفر الإضافات Android Eclipse أثناء بناء التطبيق الخاص بك. R.java يتم إنشاؤه تحت دليل "الجنرال". يتم إنشاء هذا الملف من المعلومات الموجودة في دليل "RES". إذا قمت بتشغيل "Project" -> "Clean ..." في القائمة Eclipse، فسيتم إزالته ثم تجديد R.java ملف.

مشكلة "r لا يمكن حلها" يحدث عند تغيير اسم الحزمة الخاص بك في AndroidManifest.xml ملف. يستخدم اسم حزمة Android الخاص بك لإنشاء دليل فرعي ضمن دليل "Gen" حيث يخزنه R.java ملف.

قد يكون لدى الكسوف مشاكل في تنفيذ نظيفة، لأنه مرتبك بشأن مكان R.java الملف هو عندما قمت بتغيير اسم حزمة Android. يمكنك إما إعادة تسمية الدليل الفرعي تحت gen لتتناسب مع اسم الحزمة الجديد الخاص بك، أو يمكنك تغيير اسم الحزمة الخاص بك إلى الاسم القديم. قم بالتنظيف ثم قم بتغيير اسم الحزمة إلى الاسم الجديد الذي تريده. يعمل هذا بشكل أفضل إذا توقفت عن كسوف من محاولة البناء أثناء تغيير اسم الحزمة. ضمن قائمة "المشروع" قم بإلغاء تحديد خيار "Build تلقائيا" وأيضا عندما يسأل مربع الحوار "نظيف ..." عما إذا كان يجب "بدء إنشاء" فورا "قم بإلغاء تحديد المربع حتى لا يحاول البناء أثناء تغييرك اسم الحزمة. بعد تغيير الاسم، يمكنك تشغيل "Build تلقائيا" مرة أخرى.

لاحظ أنه إذا كان لديك AndroidManifest.xml اسم حزمة الملفات لا يتطابق مع اسم حزمة Java الخاص بك، وسوف ينتهي الكسوف تلقائيا بإضافة "استيرادu003Cyour Android package name> .r؛ "خط في كل ما تبذلونه .java الملفات التي لديها أي مراجع إلى R. إذا قمت بتغيير الخاص بك AndroidManifest.xmlاسم الحزمة، في بعض الأحيان الكسوف لا يقوم بتحديث كل هذه الواردات المضافة. إذا حدث ذلك، استخدم Refactoring Eclipse (بديل + يحول + رديئة) لتغيير بيان الاستيراد في أحد ملفات Java الخاصة بك إلى الجديد AndroidManifest.xml اسم الحزمة. من الأفضل القيام بذلك أثناء تعطيل "بناء تلقائيا".

ص هي فئة تم إنشاؤها تلقائيا تحمل الثوابت المستخدمة لتحديد مواردك. إذا لم يكن لديك ملف R.Java (سيكون Gen / Eu.Mauriziopz.gps / R.java في الكسوف مع 1.5 SDK)، أود أن أوصي بإغلاق مشروعك وإعادة فتحه أو الذهاب إلى المشروع> بناء الكل (و اختيار "بناء تلقائيا" أثناء وجوده من قبل JOSEF). إذا لم يعمل ذلك بدلا من محاولة إجراء مشروع جديد، إذا تم إعادة إنشاء المشكلة من المشاركة هنا مرة أخرى وسنذهب إلى مزيد من التفاصيل.

أغلق جميع الملفات، المشروع النظيف، إعادة تشغيل الكسوف.

الأمر يستحق التحقق في AndroidManifest.xml. وبعد السمة package لديه القيمة الصحيحة.

إنه:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="your.correct.package.name"
   ...

بعد تغيير ذلك، R.java سيتم إعادة إنشاء.

يمكن أن يحدث هذا الخطأ أيضا عن إضافة نشاط لاسم مساحة الاسم يختلف عن مساحة الاسم الجذر لحزمةك.

على سبيل المثال، إذا com.example.myapp هي مساحة الاسم الجذر للحزمة الخاصة بك، يمكنك بعد ذلك إضافة نشاط إلى com.example.myapp.activities مساحة الاسم.

سيؤدي ذلك إلى إنتاج خطأ "R لا يمكن حلها".

لإصلاح استيراد R في مساحة الاسم الافتراضية في نشاطك يجب أن يكون:

import com.example.myapp.R;

جنبا إلى جنب مع اقتراحات كبيرة في الإجابات السابقة، تأكد من تعيين هدف Android الخاص بك:

  1. انقر بزر الماوس الأيمن فوق مشروعك
  2. اختر خصائص
  3. اختر Android في القائمة اليسرى
  4. حدد مربع بجوار هدف بناء المشروع المناسب.
  5. انقر فوق "تطبيق" و "موافق"

تحرير: بعد عام، وجدت سبب آخر. كان لدي صورة .jpg في مجلدي القابل لرسم بنفس اسم صورة .png. الرجوع إلى هذه الصورة في التعليمات البرمجية يجب الخلط بين البرنامج وأعطى خطأ "R لا يمكن حلها".

تأكد من تثبيت نموذج أداة Build Android Manager SDK

Project Click Click properties-> Java Buildath حدد المكتبة وإضافة Android-Support.jar اتبع هذه الخطوة.

انتقل إلى المشروع-> خصائص -> مسار بناء Java من علامة التبويب "ترتيب وتصدير". تعيين مكتبة Android-Support .jar فحصها وحتى أعلى القائمة. ونظيفة وإعادة البناء .. يعمل لمعظم الحالات

enter image description here

لقد تلقيت هذه المشكلة للتو وقت المرء وأدركت ما الذي كان يسببه: قمت بإنشاء ملف XML بأحرف كبيرة في الاسم. كل ما تبذلونه من أسماء ملفات XML في /res يجب أن تتطابق [a-z0-9\\._].

أبسط حل - أحيانا تحتاج فقط إلى حفظ ملف XML الذي كنت تعمل عليه للحصول على التلقائي الركض.

احفظ الملف (على سبيل المثال main.xml) ثم حذف ملف r.java ومعرفة ما إذا كان R.Java R.Java يحل مشكلة حل R.

R هي فئة تم إنشاؤها. إذا كنت تستخدم أدوات تطوير أندرويد (ADT) يتم إنشاؤه كلما تم بناء المشروع. قد يكون لديك "بناء تلقائيا" إيقاف التشغيل.

تحقق من أسماء ملفات XML. تأكد من أنهم جميعا في أحرف صغيرة.

تأكد أيضا من أن أي أسماء موارد الصور هي أيضا في حالة أقل. كان لدي حرف كبير في اسم ملف JPG الخاص بي، وقد تسبب في خطأ R غير موجود مباشرة عبر مشروعي.

تم اقتصاص هذا الخطأ في تثبيت MINT Linux X64 الخاص بي. اتضح أن النتيجة كانت الفشل في ADB ثنائي، لأن ia32-libs لم يتم تثبيت الحزمة. ببساطة الجري apt-get install ia32-libs وإعادة إطلاق الكسوف إصلاح الخطأ.

إذا لم يكن لديك X64 Distro الخاص بك IA32-Libs، فسيتعين عليك الذهاب إلى Multarch.

تحقق # 4 و # 5 في هذا المنشور:http://crunchbang.org/forums/viewtopic.php؟pid=277883#P277883.

أمل أن هذا يساعد شخصاما.

قد تحتاج إلى تحديث / تثبيت أدوات SDK. Relaunch Android SDK Manager مرة أخرى وتثبيت عنصر جديد: Android SDK Build-Tools.One بواسطة One Delete، وإصلاح أي عمل واحد من أجلك.enter image description here

قد تحتاج إلى تحديث أدوات SDK. Relaunch Android SDK Manager مرة أخرى وتثبيت عنصر جديد: Android SDK Build-Tools.

enter image description here

كان لي هذه المشكلة أيضا. اتضح أنه قد حذفت عن غير قصد على مورد سلسلة "App_Name" من strings.xml ملف، الذي كان يسبب خطأ صامت. بمجرد أن أضفته، تم إنشاء فئة R بنجاح وبدأ كل شيء مرة أخرى.

الفحص الأول هو هناك أي خطأ في أي تخطيط XML أم لا، إذا قمت بحلها أولا.

إزالة خلاف ذلك تبعية جاريت من المشروع وإعادة بناء المشروع.

enter image description here

حاول إنشاء اسم ملف تخطيط XML الجديد الجديد. على سبيل المثال، استخدم my_file.xml بدلا من myFile.xml.

سبب آخر R.java قد لا تحصل على الحساسية إذا كان لديك أدلة مثل الدقة / جميلة hdpi, RES / Drawable-MDPI, ، أو الدقة / جميلة-LDPI.

1.6+ يبدو أن موافق مع هذه الدلائل، ولكن 1.5 لا يريدهم. عندما أزلت هذه الدلائل، R.java بدأت الالتحاكي بالنسبة لي مرة أخرى.

فقط اذهب إلى قائمة القائمة التي تعمل بنظام Android. انقر فوق يبني القائمة، في قيد الإنشاء انقر على إعادة بناء المشروع.

enter image description here

كان لدي أمثلة Android 8 وكان يحاول استخدام Android 7 SDK. عندما أغلقت المشروع وأعد فتح مجلد التطبيق واختار استخدام Android 8 SDK، كان قادرا على العثور على ملف R. أتمنى أن يساعدك هذا.

في حالتي، كان لدي خطأ في بلدي AndroidManifest.xml. وبعد قال آخرون إن ملفات XML الخاصة بك يجب أن تكون خالية من الأخطاء، لكنني كنت أبحث فقط في الدقة / المجلد. ابحث عن وإصلاح العديد من الأخطاء المحتملة والمشكلة قد تحل نفسها جيدا.

في كثير من الأحيان، هذا بسبب رقم إصدار MinsDK الذي قدمته عند إنشاء المشروع. مثال:

إذا كنت تريد 2.1 ليكون الحد الأدنى، فإن Android 2.1 هو في الواقع API المستوى 7.

يمكنك أن ترى ما أتحدث عنه عند استعراض SDK الذي قمت بتنزيله وتثبيته. انتقل إلى المكان الذي قمت بتثبيته SDK إلى (C:\android-sdk-windows على سبيل المثال) وفتح المجلد المسمى "المنصات". سترى شيئا مثل "Android-7" مدرج كجلد، وإذا فتحت أن هناك source.properties الملف الذي، عند فتحه مع محرر نصوص، سيظهر لك إصدار النظام الأساسي المقابل.

عند إنشاء مشروع، يجب عليك تحديد API "Build Target"، العمود الأخير في تلك القائمة المسماة "مستوى API" يعرض الرقم الذي تبحث عنه عند ملء إعداد MinsDK.

ربما هذا هو أحد الأخطاء الأكثر شيوعا التي تؤدي إلى R.java الملف لا يتم إنشاؤه ضمن المشروع> Gen> Packagename> R.JAVA.

إزالة main.out.xml. وبعد أنا جديد على هذا ولا أعرف بعد ما يستخدمه هذا الملف، ولكن إزالة عليه مسح المشكلة.

لسوء الحظ، ساعد أي من الأسئلة الحالية. نظرا لأن مشكلتي تبدو محددة منصة، فقد يعمل هذا فقط إذا كنت أوبونتو 64 بت. (أنا حاليا باستخدام Ubuntu 12). في البداية، لم أر نافذة "المشاكل"، والتي ألمح بالفعل إلى حل، على بيئة 64 بت تحتاج إلى Libs 32 بت، والتي قد تكون مفقودة:

Sudo Apt - الحصول على تثبيت IA32-LIBS

لقد قمت بتثبيت الحزمة وإعادة بناء مشروعي، الذي تم إصلاح المشكلة بالنسبة لي.

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