2013-10-10 19 views
4

我目前有一个好奇的问题,试图同时使用V4和V7(操作栏)兼容性库。ActionBarActivity和FragmentActivity ...“不可转换类型”?

比方说,我有我自己的Activity类,一方面扩展了ActionBarActivity,另一方面是一个片段,我称之为“(MyActivity)getActivity()”。

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

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

我也检查:ActionBarActivity扩展FragmentActivity。

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

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

任何想法

编辑: 作为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个错误,并在4秒

0警告,在已完成的“信息制作”部分,我可以看到这个每次我尝试投 “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类中,正如我所说的,我检查了我的Fragment,它确实是一个androi.support。 v4.app.Fragment。 –

+0

感谢编辑sabadow,我不知道如何缩进代码...对不起... –

回答

2

嗯,我很难过这么说,但我最终下载了Eclipse,导入了我的项目,并使用Eclipse的错误消息解决了我的问题。 它告诉我“修复项目属性”,我点击,它做了一切在他身边,我尝试启动应用程序,它的工作。 现在问题得到解决,当我回到Android Studio时,它也可以工作......但是,目前,我认为我会留在Eclipse中......太多的时间浪费掉了。 :(

+0

那么是什么修复? – sholsapp

+0

我的修复只是暂时放弃Android Studio ... :-( –

+0

唉,我也有类似的问题。它o UT。 – sholsapp

0

Android Eclipse插件变得脆弱。尝试清理你的项目,然后重建。另外,请尝试重新启动Eclipse。同时验证您的项目构建路径库的顺序。另外,尝试从项目中的命令行重建'ant clean; ant调试“,但在Eclipse关闭时执行。

+0

我使用Android Studio,这不会帮助我,不幸的是...但谢谢你 –