PDA

View Full Version : مشکل با eclipse



yegane8
شنبه 12 اسفند 1391, 00:06 صبح
سلام
من دارم برنامه نویسی اندروید رو شروع میکنم قبلا جاوا کار کردم الان میخوام جاوا اندروید شروع کنم همین اول کاری تو eclipse به یه مشکلی خوردم :
http://upload.tehran98.com/img1/jwzymnq1lsacgpoho8r3.png
حالا وقتی قسمت هایی که ارور دارند رو کلا حدف میکنم و برنامه رو تو ایمولاتور run میکنم میرم تو قسمت Setting->> application _>>manage applications اون برنامه رو میبینم اما برنامم open نمیشه که hello world رو ببینم . درضمن تو قسمت برنامه هایی که نصب شدند و کار میکنند هم برنامه من نشون داده نمیشه
حالا وقتی دارم پروژه جدید اجاد میکنم هم نمیدمونم باید تو فیلد باید چی پر کنم شاید مشکل از همین باشه؟!
http://upload.tehran98.com/img1/3tsf7sj418o0h3obh8kl.png
باید چی کار کنم؟
باتشکر

Modernidea
شنبه 12 اسفند 1391, 11:11 صبح
سلام

نکته:
اول اینکه مسیری که شما برای اجرا برنامه ذکر کردید کلا اشتباه است، در Manage Application امکان توقف و حذف برنامه وجود داره!
شما وقتی دکمه run را بزنید، به صورت خودکار برنامه در emulator یا گوشی نصب میشه و سپس اجرا میشه.
راه حل ممکن:
باید ببینید آیا Main Activity را به عنوان Launcher در Manifest برنامه تعریف کردید؟ اگر این کارو قبلا کردید، بهتره کد برنامه را اینجا قرار بدید ببنیم مشکل چیه.

در مورد سوال دوم، اگر قصد ایجاد Activity را دارید، فیلد مورد نظر را برابر android.app.activity قرار بدید.

موفق باشید.

yegane8
شنبه 12 اسفند 1391, 22:20 عصر
اول اینکه مسیری که شما برای اجرا برنامه ذکر کردید کلا اشتباه است، در Manage Application امکان توقف و حذف برنامه وجود داره!
میدونم که اشتباهه ولی چون با زدن run برنامم اجرا نشد می خواستم ببینم اصلا اومده تو ایمولاتور یا نه که دیدم بله تو Manage Application هست
این manifest که فکر کنم main activity به عنوان launcher توش تعریف شده :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app1"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="15" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="a" />
</activity>
</application>

</manifest>
اینم کلاس main activity :
package com.example.app1;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getActionBar().setDisplayHomeAsUpEnabled(true);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}

}

که خط : getActionBar().setDisplayHomeAsUpEnabled(true);

و خط case android.R.id.home:

رو ایراد می گیره
در مورد سوال دوم هم مگه نباید حداقل یک activity ایجاد کرد؟
باتشکر

Modernidea
شنبه 12 اسفند 1391, 23:50 عصر
سلام

این یک نمونه از یک Manifest است که به طور صحیح یک Activity را به صورت Launcher تعریف کرده است:

<application android:label="@string/app_name" android:icon="@drawable/icon">
<activity android:name="ExampleActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>



که خط :
getActionBar().setDisplayHomeAsUpEnabled(true);
نشانگر موس را روی قسمتی که خط قرمز زیر آن کشیده شده است(getActionBar())؛ بگیرید ببنید چه پیغامی را نمایش میدهد؟




و خط
case android.R.id.home:
این خطا به این معنی است که ID مربوط به منوی home در فایل R ایجاد نشده است و میتواند به دو دلیل باشد، یک اینکه اصلا این منو را تعریف نکردید، دوم اینکه تعریف کردید اما به دلیل اینکه چند خط بالا تر خطایی وجود داشته است، کامپایلر خطوط بعدی را کامپایل نکرده و در نتیجه ID مربوط به منوی مورد نظر را در فایل R ایجاد نکرده است(نوجه کنید که فایل R را نباید به صورت دستی تغییر دهید، خود کامپایلر این کار را میکنید).

اگر خطای خط اول را متوجه شدید و رفع کردید، یکبار پروژه را Clean کنید و بعد اجرا کنید.

موفق باشید.

yegane8
یک شنبه 13 اسفند 1391, 00:17 صبح
سلام
خطای اول : The method getActionBar() is undefined for the type MainActivity
خطای دوم: home cannot be resolved or is not a field
ممکنه ایراد از ورژن Sdk یا api انتخابی واسه پروژه باشه من من api 10 , andoid 2.3.3 رو انتخاب کردم
http://upload.tehran98.com/img1/9grc9nd7uua678g701xa.png
باتشکر

Nevercom
یک شنبه 13 اسفند 1391, 00:22 صبح
برای استفاده از ActionBar باید از API 13 به بالا استفاده کنید، خطایی که گرفته بخاطر همینه
احتمالاً هنگام ایجاد پروژه در Wizard قسمت API رو 10 انتخاب کردید و بعد برای Activity از Template ئی استفاده کردید که از ActionBar استفاده کرده.

به هرحال یا نسخه ی API رو تغییر بدید یا کدهای مربوط به ActionBar رو حذف کنید.

برای استفاده از ActionBar در نسخه های پایینتر میتونید از کتابخانه ی ActionBarSherlock استفاده کنید.