ActionBarActivity和FragmentActivity ......“Inconvertible类型”?

时间:2013-10-10 18:13:51

标签: android gradle android-studio

我目前遇到了一个奇怪的问题,试图同时使用v4和v7(actionbar)兼容库。

假设我有自己的Activity类,一方面扩展了ActionBarActivity,另一方面扩展了Fragment,我称之为“(MyActivity)getActivity()”。

我检查了导入,我的片段是v4片段。

在v4片段中,调用“getActivity()”会返回FragmentActivity。

我还检查过:ActionBarActivity扩展了FragmentActivity。

现在这是我的问题: 我在编辑器中没有任何错误(没有红线)。 我正在使用Android Studio。 当我尝试“制作”项目时,编译器每次在我的片段中调用“getActivity”时都会返回错误。 它告诉我他有一个FragmentActivity但是ActionBarActivity是预期的,并告诉我这些类是不兼容的。 它中断,我甚至无法测试我的应用程序。

这可能是gradle配置的问题,但我在build.gradle文件的“dependencies”部分添加了“compile”编译“com.android.support:appcompat-v7:18.0.+”“,在这个页面上说:“http://developer.android.com/tools/support-library/setup.html”,并没有改变任何东西......

有什么想法吗?

编辑: 作为我昨天发布的帖子的补充,即使以前解释过一切,这里有一些代码部分和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...
}

编辑器中未显示错误。 但当我“制作”项目时,我在“事件日志”中收到此消息:

  

编译在4秒内完成了5个错误和0个警告

在“Messages Make”部分中,我每次尝试在“MyAbstractActivity”中投射“getActvity()”时都能看到这一点:

  

java:不可转换的类型   必需:com.myapps.abstracts.MyAbstractActivity   发现:android.support.v4.app.FragmentActivity

2 个答案:

答案 0 :(得分:2)

好了,我很伤心地说,但我终于下载了Eclipse,进口我的项目,并解决我的问题,使用Eclipse的错误消息。 它告诉我“修复项目属性”,我点击了,它做了一切在他身边,我试图启动应用程序,它工作。 现在问题已经解决了,当我回到Android Studio时,它也可以工作......但是,目前,我认为我将继续使用Eclipse ...太多的时间都没有丢失。 :(

答案 1 :(得分:0)

Android Eclipse插件变得不稳定。尝试清理项目,然后重建。另外,尝试重新启动Eclipse。还要验证项目构建路径库顺序。另外,尝试使用'ant clean;从项目中的命令行重建; ant debug',但在Eclipse关闭的情况下这样做。