2013-10-10 17 views
4

У меня сейчас есть любопытная проблема, пытаясь одновременно использовать v4 и v7 (actionbar) совместимые библиотеки.ActionBarActivity и FragmentActivity ... «Неконвертируемые типы»?

Предположим, у меня есть свой класс активности, который расширяет ActionBarActivity, с одной стороны, и, с другой стороны, фрагмент, внутри которого я называю «(MyActivity) getActivity()».

Я проверил импорт, а мой Фрагмент - фрагмент v4.

В фрагменте v4 при вызове функции getActivity() возвращается функция FragmentActivity.

Я также проверил: ActionBarActivity расширяет FragmentActivity.

Теперь вот моя проблема: У меня нет никакой ошибки в редакторе (без красной линии). Я использую Android Studio. Когда я пытаюсь «Сделать» проект, компилятор возвращает ошибку для каждого раза, когда я вызываю «getActivity» внутри моего фрагмента. Он говорит мне, что у него есть FragmentActivity, но ожидается ActionBarActivity и говорит мне, что эти классы несовместимы. Это прерывает, и я даже не могу проверить свое приложение.

Это может быть проблема с конфигурацией градиента, но я добавил компиляцию компиляции «com.android.support:appcompat-v7:18.0.+» в разделе «dependencies» моего файла build.gradle, как сказал на этой странице:? «http://developer.android.com/tools/support-library/setup.html», и это ничего не меняет ...

Любая идея

EDIT: Как adddition к моей вчерашней почте, даже если все объяснить, прежде чем , вот некоторые части кода и сообщение об ошибке Android-Studio дает мне:

Прежде всего, моя деятельность:

... 
import android.support.v7.app.ActionBarActivity; 
... 
public abstract class MyAbstractActivity extends ActionBarActivity{ 
    //Do some stuff here 
} 

Каждое действие моего приложения распространяется на этот класс.

Теперь вот мой фрагмент:

... 
import android.support.v4.app.Fragment; 
import android.support.v7.app.ActionBar; 
... 
public class MyFragment extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     //Do some stuff... 
     ((MyAbstractActivity)getActivity()).getSupportActionBar().setTitle(R.string.app_name); 
    } 

    //Do some stuff... 
} 

об ошибке не отображается в редакторе. Но когда я «Сделать» проект, я получаю это сообщение в «Журнале событий»:

компиляции укомплектованный 5 ошибок и 0 предупреждений в 4 сек

В «Сообщения Make» часть, я могу увидеть это каждый раз, когда я пытаюсь бросить "getActvity()" в "MyAbstractActivity":

Java: неконвертируемые типы необходимые: com.myapps.abstracts.MyAbstractActivity найдено: android.support. v4.app.FragmentActivity

+0

Вы добавили бросок в 'ActionBarActivity'? Вы уверены, что ваш' Fragment' является 'androi.support.v4.app.Fragment', а не' android.app.Fragment'? – CommonsWare

+0

Спасибо для вашего ответа. Что касается активности, она расширяет ActionBarActivity, и в моем фрагменте я передал результат «getActivity» в мой класс Activity. И, как я уже сказал, я проверил свой фрагмент, и это действительно androi.support. v4.app.Fragment. –

+0

Спасибо за редактирование sabadow, я не знал, как отступать код ... Извините ... –

ответ

2

Ну, мне грустно это говорить, но я, наконец, загрузил Eclipse, импортировал свой проект и решил свою проблему, используя сообщения об ошибках Eclipse. Он сказал мне «Исправить свойства проекта», я нажал, он сделал все на своей стороне, я попытался запустить приложение, это сработало. Теперь, когда проблема исправлена, когда я вернусь в Android Studio, она тоже работает ... Но на данный момент я думаю, что останусь с Eclipse ... Слишком много времени потеряно ни для чего. :(

+0

Итак, что было исправлением? – sholsapp

+0

Мое решение состояло в том, чтобы просто отказаться от Android Studio на данный момент ... :-( –

+0

Aw, что отстой. У меня тоже есть аналогичная проблема. это о ет. – sholsapp

0

Плагин Android Eclipse получает flaky. Попробуйте очистить ваш проект, а затем перестроить. Также попробуйте перезапустить Eclipse. Также проверьте заказ библиотеки путей проекта. Кроме того, попробуйте перестроить из командной строки в проекте «ant clean»; ant debug ', но делать это, пока Eclipse закрыт.

+0

Я использую Android Studio, это не поможет мне, к сожалению ... Но спасибо для вашего ответа –

Смежные вопросы