2013-10-10 48 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,這不會幫助我,不幸的是...但謝謝你 –