web-dev-qa-db-ja.com

FragmentActivityは型に解決できません

このブログ からアプリケーションを試しています。 FragmentActivityを拡張しているときに、次のエラーが表示されます。

`FragmentActivity` was not able to resolve.

ライブラリまたは何か他のものがありませんか?

私のコード:

public class Testing_newActivity extends FragmentActivity { // here the FragmentActivity getting error package not found for import
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);
        if (getResources().getConfiguration().orientation
                == Configuration.ORIENTATION_LANDSCAPE) {
            // If the screen is now in landscape mode, we can show the
            // dialog in-line so we don't need this activity.
            finish();
            return;
        }

        if (savedInstanceState == null) {
            // During initial setup, plug in the details fragment.
            DetailsFragment details = new DetailsFragment();
            details.setArguments(getIntent().getExtras());

            getSupportFragmentManager().beginTransaction().add(
                    Android.R.id.content, details).commit();
        }       
    }
}

Androidマニフェストファイル

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.searce.testingnew"
    Android:versionCode="1"
    Android:versionName="1.0" >

    <uses-sdk Android:minSdkVersion="11" />

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

</manifest>
29
Pratik

この答えを長い間待った後、私は物事を整理しました、そして私は他の多くの人々がこの質問のための簡単な解決策を必要とすると思います。

警告:このソリューションは、Indigo以前のバージョンを使用するEclipseユーザー向けです。 Android用の他のIDEを使用するソリューションユーザーを探しています。

バージョン2.2以下でアプリケーションのFragmentActivityを拡張する場合、Android.supportv4.jarを here からダウンロードするか、Android-sdkディレクトリ..\Android-sdk\extras\Android\support\v4そしてプロジェクトに入れます。

プロジェクトにディレクトリlibsがない場合は、libsディレクトリを作成し、Android.supportv4.jarファイルをこのディレクトリに貼り付けます。

Eclipseプロジェクトワークスペースから:使用するproject/applicationを選択します。 Projectを右クリックして、Propertiesオプションを選択します。これでJava build pathを選択し、タブLibrariesを選択します

enter image description here

[Jarの追加]をクリックします。選択した現在のプロジェクトとともに、プロジェクトの現在のリストが表示されます。

これを展開してlibsディレクトリに移動し、Android.supportv4.jarファイルを選択して[OK]をクリックします。リストボックスに表示されます。 Remember add the jar file as relative path path not as absolute path, so whenever if you change the directory of your project or open in another machine then will detect automatically for the project directory. [Ok]をクリックして、[プロパティ]ダイアログを閉じます。

FragmentActivityの上にマウスを置くか、ctrl + shift + oを押して欠落しているファイルをインポートすることにより、Android.support.v4.app.FragmentActivity;をインポートできます。

FragmentActivityクラスが得られることを願っています。

Eclipse junoを使用している場合、サポートjarファイルのダウンロードについて心配する必要はありません。 libsディレクトリに自動的に配置され、プロジェクトパスに自動的に追加されます。そうでない場合は、Propertiesオプションを使用して追加します。

もう1つ、低いバージョンのアプリケーションをサポートする必要がある場合は、高いバージョンでビルドし、この行をandroidmanifest.xmlファイルに追加してください

<uses-sdk
    Android:minSdkVersion="3"
    Android:targetSdkVersion="15" />

これにより、1.5〜4.0.1バージョンのデバイスがサポートされるようになります。

45
Pratik

EclipseとWindowsを使用している場合、このエラーを取り除く方法は次のとおりです。

Right click on your project folder->Build path-> Configure build path-> 
Add External Jars -> select "Android-support-v4.jar" file (It'll be located in Android "Android-sdk-windows\extras\Android\support")
then click OK.
38
Shivanand Darur

外部を追加する必要がありますAndroid support Jarをクラスパスに追加します。私の場合、Android-support-v4.jarを追加しました。通常は{Android_home}\extras\Android\support\v4ディレクトリ。私はwindows XPを使用しています。私の場合はC:\Program Files\Android\android-sdk\extras\Android\support\v4

これが答えを探している人に役立つことを願っています。

5
Prashant

FragmentActivityは互換性ライブラリの一部であり、Android 3.0 sdkではありません。後方互換性が必要な場合を除き、使用する必要はありません。

これがここで言及されている理由がわからないのは、プロジェクト固有のクラスかもしれません。

SDKに同梱されているHCGalleryサンプルをご覧ください

1
Rajdeep Dua