انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در شناساندن فایل های xml به جاوا (در برنامه اندروید)

مشکل در شناساندن فایل های xml به جاوا (در برنامه اندروید)

#1
سلام، من یه چند ماهه دارم روی یه برنامه کار میکنم و تا الان اصلا همچین مشکلی رو نداشتم ولی دیشب دو تا اکتیویتی جدید(با روش ذکر شده توی کلید 304) ساختم. ولی توی بخش setcontentview اصلا فایل های xml ای که براشون ساختم رو نمیشناسه و ارور cannot be resolved or is not a field میده
توی زیر شاخه ی layout رو هم چک کردم و هر دو فایل xml ساخته شده بودن، حتی سعی کردم یه فایل xml دیگه بسازم(البته خیلی بیشتر از یه دونه ساختم) ولی بازم نشد
یعنی اصلا انگار تمام فایلهای xml ای که از اون لحظه به بعد دارم میسازم برای هیچ کدوم از فایل های جاوام قابل شناسایی نیست و توی هر فایل جاوای دیگه این فایلهای xml جدید رو وارد کردم ارور داد
از دیشبم دارم سرچ میکنم ولی هیچ راه حلی پیدا نمیکنم
حتی یه جا گفته بودن پروژه رو clean و مجددا build کنم، بعد از این کار این بلا سر کل فایل های xml م اومده و الان کلا همه ی فایل های جاوای من این ارور رو دارن
چند بار هم eclipse رو بستم و باز کردم تاثیری نداشته، چند بار هم پروژه رو پاک کردم و دوباره ایمپورت کردم اونم فایده نداشته
خواهش میکنم کمکم کنین، واقعا دیگه هیچ راهی به ذهنم نمیرسه، تو اینترنت هم به فارسی و انگلیسی با 100 تا جمله ی مختلف سرچ کردم
پاسخ

مشکل در شناساندن فایل های xml به جاوا (در برنامه اندروید)

#2
سلام.
ابتدا یک فایل پشتیبان (backup) از پروژه اندروید خود تهیه کنید (یک فایل zip) که خیالتان راحت باشد که حداقل از این بدتر نمیشه (البته این مشکل، یک مشکل رایج است و بنده بارها با آن مواجه شده ام و مشکل برطرف شده). در کل، خود بنده برای پروژه های اندرویدی که می سازم، با انجام هر مرحله مهم (مثلا ساخت یک بخش مهم جدید)، حتما یک فایل zip از کل پروژه تهیه می کنم تا اگر در مراحل بعدی مشکلی پیش آمد، راه برگشت داشته باشم. ولی برای این مشکل شما، راه حل هایی وجود دارد، پس خیلی نگران نباشید.
دیگر فایل xml جدید نسازید (منظورم اینه که مشکل از فایل های xml نیست، بلکه مشکل در شناسایی یا ساخت کلاس R می باشد که مشخصات فایل های xml در آن ذخیره شده).
در فایل هایی که خطا در آنها ایجاد شده، در همان ابتدای کدها که برخی package ها را وارد (import) کرده ایم، ببینید کد زیر وجود دارد یا نه :

کد پی‌اچ‌پی:
import android.R

اگر وجود داشت، حتما باید حذف شود (در این حالت، یک کلاس R اشتباه را به جای کلاس R مورد نظرمان شناسایی می کند).
بعد از حذف آن، اگر خطا برطرف شد که هیچ، اما اگر همچنان فایل های xml را نمی شناخت، باید ببینیم که آیا کلاس R صحیح، وارد (import) شده است یا نه (چون شناسایی بر اساس این کلاس می باشد)(البته برای برنامه های اندروید دارای چند package). نگاهی به خط های مربوط به import ها بیندازید و ببینید که چه کلاسی به عنوان کلاس R وارد شده است (عبارت کامل آن را چک کنید که باید نام package اصلی برنامه اندروید شما در ابتدای آن باشد)(البته این برای مواقعی است که چندین package داشته باشید، اگر تنها یک package داشته باشید، نیازی به import کردن کلاس R نیست و خود به خود آن را می شناسد). کلیدهای Ctrl و Shift و O (حرف او ، نه صفر)، را به صورت همزمان بزنید و ببینید که کلاس R صحیح وارد می شود یا خیر (برای مواردی که برنامه اندروید، چند package دارد). در کل اگر برنامه اندروید شما، چند package دارد، نکته گفته شده در آخر کلید زیر را بخوانید (در مورد یک خطای رایج) :

کلید شماره 2670

فرض کنیم که مراحل بالا را انجام دادید و مشکل همچنان باقی ماند، بنابراین باید دوباره پروژه اندروید را Clean کرده و سپس همین مراحل بالا را چک کنید. قبل از Clean کردن پروژه اندروید، حتما نکات توضیح داده شده در کلید زیر را بخوانید :

کلید شماره 358

اگر خطا همچنان باقی ماند، متن خطاها و همچنین کدهای مربوط به import کردن package ها را بیان کنید تا بررسی کنم. همچنین بفرمایید که برنامه اندروید شما، تنها یک package دارد یا چند package .

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط mahsa71

مشکل در شناساندن فایل های xml به جاوا (در برنامه اندروید)

#3
سلام، خیلی ممنون از جوابتون و وقتی که گذاشتین
این import های اول یکی از همون activity هایی بود که خراب بود (البته همون طور که گفتم الان کل activityهام خرابن)

کد پی‌اچ‌پی:
import android.R;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button

اون android.R رو که برداشتم ارور R cannot be resolved to a variable داد (با این که من فقط یک پکیج دارم توی برنامه م) و وقتی به جاش خواستم اسم پکیج.R رو هم بذارم نفهمید یعنی وقتی اسم پکیج رو مینویسم و . میذارم و کنترل و اسپیس میزنم فقط اسم فایل های جاوای پکیجم رو میاره و اگه بدون توجه به اون هم خودم R رو تایپ کنم ارور میده

   

ارورش هم اینه:

   

با زدن کنترل و شیفت و o هم باز همون android.R رو ایمپورت میکنه و ارور های نشناختن فایل های xml همچنان باقی هستن
clean رو هم طبق آموزش انجام دادم ولی باز هم فایل R.java ساخته نشد
ضمن این که من تمام این کارهایی که گفتین رو دیروز هم چندین باااااار انجام داده بودم و بعد از انجامشون هم eclipse رو باز و بسته کردم ولی تاثیری نداشته
ولی قبلا که این clean رو انجام میدادم بعدش مجددا build میکردم (البته با build کردن هم فایل R.java ایجاد نمیشد(
این لیست همه ی ارورهام هست:

   

(مکان ارورها هم همه ی جاهاییه که اسم R اومده)
پاسخ

مشکل در شناساندن فایل های xml به جاوا (در برنامه اندروید)

#4
این هم همه ی ایمپورت های اول activity هام هست که پشت سر هم آوردمشون:

   

البته همه ی اینها import R.java هم داشتن که طبق گفته ی شما حذفشون کردم
این هم پوشه ی gen م که R.java توش نیست

   

بازم ممنون از رسیدگی و وقتی که میذارید
پاسخ

مشکل در شناساندن فایل های xml به جاوا (در برنامه اندروید)

#5
ببخشید فک میکنم مشکل از تم برنامه م باشه چون 3تا ارور در مورد theme بهم داده(اون موقع که داشتم عکس میگرفتم اینجا بذارم نبودن الان بدون اینکه کاری کنم اومدن نمیدونم چرا)
البته من اصلا theme برنامه رو عوض نکردم ولی ممکنه دستم خورده باشه عوض شده باشه، میشه بگین تم پیش فرضش چی بوده که همونو بذارم؟ (چون توی سرچهای دیروزم یه جا خونده بودم مشکل ممکنه مربوط به تم باشه)
پاسخ

مشکل در شناساندن فایل های xml به جاوا (در برنامه اندروید)

#6
تا حالا برای من پیش نیامده که مشکل از theme باشه. به هر حال، برای تغییر theme کل برنامه اندروید، باید در فایل AndroidManifest.xml ، کد زیر را که درون تگ application نوشته شده، تغییر بدهید :

کد پی‌اچ‌پی:
android:theme="@style/AppTheme" 

همین عبارت بالا را می توانید به کار ببرید (theme مورد نظر در فایل styles.xml تعریف شده است). در فایل styles.xml ، کدهای زیر نوشته می شود :

کد پی‌اچ‌پی:
<resources>

    <!--
        
Base application themedependent on API levelThis theme is replaced
        by AppBaseTheme from res
/values-vXX/styles.xml on newer devices.
    -->
    <
style name="AppBaseTheme" parent="android:Theme.Light">
        <!--
            
Theme customizations available in newer API levels can go in
            res
/values-vXX/styles.xml, while customizations related to
            backward
-compatibility can go here.
        -->
    </
style>

    <!-- 
Application theme. -->
    <
style name="AppTheme" parent="AppBaseTheme">
        <!-- 
All customizations that are NOT specific to a particular API-level can go here. -->
    </
style>

</
resources

------------------------------------------------------

ببینید گزینه Build Automatically تیک خورده باشه (برای Clean کردن) :

   

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط mahsa71

مشکل در شناساندن فایل های xml به جاوا (در برنامه اندروید)

#7
روشی را در ادامه ذکر می کنم، اما خواهشمندم هر کاربری که قصد دارد آن را به کار ببرد، حتما دو مورد زیر را انجام بدهد :
1- تمامی مراحلی که در ارسال های قبلی راهنمایی شد را انجام بدهد (حداقل چند بار) و تنها اگر دیگر راه حلی نداشت، به سراغ این روش بیاید.
2- یک کپی از پروژه اندروید خود در محلی امن قرار بدهید، سپس این روش را انجام بدهید، اگر جواب نگرفتید، دوباره از همان برنامه ای که کپی کرده اید (back up) استفاده کنید (زیرا اگر تعداد فایل های پروژه شما زیاد باشد، ممکن است که به اشتباه، بخشی از آن را دستکاری کنید).

حالا می رویم سراغ این روش :
یادم می آید یک بار تمام مواردی که ذکر کردم را انجام دادم ولی باز هم کلاس R ساخته نشد. حدس زدم دلیلش خطاهایی است که اتفاقا از همین عدم ساخت کلاس R به وجود می آید، یعنی یک روند متقابل، کلاس R ساخته نشده و باعث خطا می شود و همین خطاها هم باعث عدم ساخت کلاس R در هنگام Clean کردن پروژه اندروید می شوند. بنابراین باید به گونه ای خطاها را برطرف می کردم. بنابراین تمامی بخش هایی که شامل خطا بودند را به حالت توضیح در آوردم. به دلیل عدم شناسایی فایل های xml مربوط به لایه ها، عملا تنها یک چارچوب ساده برای Activity باقی می ماند که اجرا می شد (یعنی حتی لایه گرافیکی هم پردازش نمیشه). در این حالت، دیگر هیچ خطایی در پروژه اندروید باقی نمی ماند (حتما بخش Problems را چک کنید که خطای مهمی در آن نوشته نشده باشد). سپس همان مراحلی که ذکر شد را انجام دادم (یعنی حذف تمامی عبارت های android.R و Clean کردن پروژه اندروید و ...). این دفعه، کلاس R بدون هیچ مشکلی ساخته شد و سپس بخش های به صورت توضیح درآمده را به شکل اول در آوردم و مشاهده کردم که شناسایی شده اند.
بنده این روش را به عنوان آخرین راه حل توصیه می کنم (چون اگر تعداد فایل ها زیاد باشد، به صورت توضیح در آوردن بخش ها، زمان بر خواهد بود، اگر هم جواب نگیرید که دیگر واقعا آزاردهنده بوده است، به هر حال این تجربه ای بود که گفتم بیان کنم).

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط mahsa71

مشکل در شناساندن فایل های xml به جاوا (در برنامه اندروید)

#8
فکر میکنم مشکل theme از همون برداشتن تیک build automatically بود(البته تیکش بود ولی توی سایت stack overflow نوشته بودن باید تیک رو بردارم بعد clean کنم برای همون برداشته بودم)
بعد از گذاشتن تیک فایل R.java م درست شد و حسابی ممنون از راهنمایی هاتون
ولی متاسفانه برنامه م هنوز یه ارور هایی داره که قبلا نداشت(با این که تو این مدت من اصلا کد ها رو تغییر ندادم)
ارورهاش هم همه مربوط میشه به فایل های xml ای که زیر مجموعه ی فولدر menu هستن

   
 

   

ولی متاسفانه من اصلا نمیدونم این فایلهای xml زیر مجموعه ی menu چی هستن! انگار فایلهای xml ی هستن که قبلا ساختم و پاکشون کردم
اگه کلا پاکشون کنم میشه به جاشون از فایل های xml موجود استفاده کنم؟ مثلا من هر کدوم از اینها رو که پاک کردم بعدش به جاش یه فایل xml دیگه ساختم(البته به جز یکیشون که بعد از ساختن حس کردم نیازی بهش نیست و کلا پاکش کردم)
ببخشید اگه سوالم خیلی سطح پایینه!
و همچنان ممنون برای پاسخ گویی و پیگیریتون
پاسخ
 سپاس شده توسط admin

مشکل در شناساندن فایل های xml به جاوا (در برنامه اندروید)

#9
الان بعد از backup گرفتن از پروژه م، هر چهار فایل xml توی menu و متد های onOptionsItemSelected و onCreateOptionsMenu  رو از پروژه م حذف کردم و همه ی ارور ها رفع شد ولی نمیدونم اصلا اون فایل های xml و این دو متد که حذفشون کردم چی هستن ولی من تا حالا کدی توی این دو متد ننوشته بودم، امیدوارم زیاد مهم نباشن
میشه اگه مهم هستن بگین که دنبال یه راه دیگه باشم؟
پاسخ

مشکل در شناساندن فایل های xml به جاوا (در برنامه اندروید)

#10
روش های onOptionsItemSelected و onCreateOptionsMenu  برای ساخت منوها (menu) به کار می روند که به شیوه های مختلفی می توان آنها را نمایش داد، از جمله نمایش منو با زدن دکمه menu گوشی، نمایش گزینه های منو در action bar (کلید شماره 2657)، نمایش منو هنگام انتخاب گزینه هایی در لایه گرافیکی و ... . بنابراین اگر شما مورد خاصی مد نظرتان نبوده (یعنی طراحی منو مد نظرتان نبوده)، حذف آنها اختلالی در برنامه اندروید شما ایجاد نخواهد کرد.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط mahsa71

مشکل در شناساندن فایل های xml به جاوا (در برنامه اندروید)

#11
خیلی ممنون از راهنمایی هاتون
پاسخ
 سپاس شده توسط admin ، شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان