4

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

假设我有自己的 Activity 类,它一方面扩展了 ActionBarActivity,另一方面扩展了 Fragment,我在其中调用了“(MyActivity)getActivity()”。

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

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

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

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

这可能是 gradle 配置的问题,但我在 build.gradle 文件的“依赖项”部分添加了“compile”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

4

2 回答 2

2

好吧,我很遗憾地说,但我终于下载了 Eclipse,导入了我的项目,并使用 Eclipse 的错误消息解决了我的问题。它告诉我“修复项目属性”,我点击了,它在他这边做了所有事情,我尝试启动应用程序,它工作。现在问题已经解决了,当我回到 Android Studio 时,它也可以工作了……但是,目前,我想我会留在 Eclipse 中……浪费了太多时间。:(

于 2013-10-11T08:58:13.803 回答
0

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

于 2013-10-10T18:21:46.393 回答