FragmentActivity не может быть разрешена для типа - PullRequest
29 голосов
/ 17 ноября 2011

Я пробую приложение из этого блога . При расширении 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>

Ответы [ 4 ]

45 голосов
/ 12 сентября 2012

После долгого ожидания этого ответа я разобрался, и я думаю, что многим другим понадобится простое решение для этого вопроса.

Предупреждение. Это решение предназначено для пользователя Eclipse, который использует Indigo или более низкую версию. Все еще ищите решения пользователей, которые используют другие IDE для Android.

Расширяя FragmentActivity для вашего приложения с версией 2.2 или ниже, вы можете скачать android.supportv4.jar из здесь или вы можете получить его из каталога 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

Теперь нажмите Add Jar. Будет отображен текущий список проектов с выбранным текущим проектом.

Разверните это, перейдите в каталог libs и выберите файл android.supportv4.jar, затем нажмите ОК. Это будет отображаться в списке сейчас. 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. Теперь нажмите «ОК», чтобы закрыть диалоговое окно «Свойства».

Вы можете импортировать android.support.v4.app.FragmentActivity;, поместив мышь над FragmentActivity или нажав ctrl + shift + o, чтобы импортировать отсутствующие файлы.

Надеюсь, вы можете получить класс FragmentActivity.

Если вы используете eclipse juno, вам не нужно беспокоиться о загрузке файла jar поддержки. Он будет автоматически помещен в каталог libs и автоматически добавлен в путь вашего проекта. Если нет, перейдите к опции Properties и добавьте ее.

Еще одна вещь. Если вам нужно поддержать ваше приложение для более низкой версии, соберите более высокую версию и добавьте эту строку в файл androidmanifest.xml

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

теперь будет поддерживаться для устройств версии от 1.5 до 4.0.1.

38 голосов
/ 28 июня 2012

Если вы используете 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.
5 голосов
/ 26 апреля 2012

Вы должны добавить внешнюю поддержку Android Jar в ваш путь к классу, например, в моем случае я добавил android-support-v4.jar, который обычно находится в каталоге {android_home}\extras\android\support\v4.Я использую Windows XP, и в моем случае она находится по адресу C:\Program Files\Android\android-sdk\extras\android\support\v4

Надеюсь, это поможет тому, кто ищет ответ.

1 голос
/ 17 ноября 2011

FragmentActivity является частью библиотеки совместимости, а не Android 3.0 SDK. Вам не нужно использовать его, если вы не хотите обратной совместимости.

Не уверен, почему здесь упоминается, что это может быть класс, специфичный для проекта.

Попробуйте посмотреть образец HCGallery, поставляемый с sdk

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...