我目前遇到了一个奇怪的问题,试图同时使用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
答案 0 :(得分:2)
好了,我很伤心地说,但我终于下载了Eclipse,进口我的项目,并解决我的问题,使用Eclipse的错误消息。 它告诉我“修复项目属性”,我点击了,它做了一切在他身边,我试图启动应用程序,它工作。 现在问题已经解决了,当我回到Android Studio时,它也可以工作......但是,目前,我认为我将继续使用Eclipse ...太多的时间都没有丢失。 :(
答案 1 :(得分:0)
Android Eclipse插件变得不稳定。尝试清理项目,然后重建。另外,尝试重新启动Eclipse。还要验证项目构建路径库顺序。另外,尝试使用'ant clean;从项目中的命令行重建; ant debug',但在Eclipse关闭的情况下这样做。