我目前有一个奇怪的问题,试图同时使用v4和v7(动作栏)兼容性库.
假设我有自己的Activity类,它一方面扩展了ActionBarActivity,另一方面扩展了Fragment,我称之为“(MyActivity)getActivity()”.
我检查了导入,我的Fragment是一个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...
}
编辑器中未显示错误.
但是当我“制作”项目时,我在“事件日志”中收到此消息:
Compilation completed with 5 errors and 0 warnings in 4 sec
在“Messages Make”部分中,我每次尝试在“MyAbstractActivity”中强制转换“getActvity()”时都能看到这个:
java: inconvertible types
required: com.myapps.abstracts.MyAbstractActivity
found: android.support.v4.app.FragmentActivity
最佳答案 好了,我很伤心地说,但我终于下载了Eclipse,进口我的项目,并解决我的问题,使用Eclipse的错误消息.
它告诉我“修复项目属性”,我点击了,它做了一切在他身边,我试图启动应用程序,它工作.
现在问题已经解决了,当我回到Android Studio时,它也可以工作……但是,目前,我认为我将继续使用Eclipse …太多的时间都没有丢失. 🙁