4

現在、v4 と v7 (アクションバー) の互換性ライブラリを同時に使用しようとして、興味深い問題が発生しています。

一方では ActionBarActivity を拡張し、他方では Fragment を拡張する独自の Activity クラスを持っているとします。その中で "(MyActivity)getActivity()" を呼び出します。

インポートを確認したところ、私のフラグメントは v4 フラグメントです。

v4 Fragment では、「getActivity()」を呼び出すと、FragmentActivity が返されます。

私もチェックしました:ActionBarActivityはFragmentActivityを拡張します。

ここに私の問題があります: エディターにエラーはありません (赤い線はありません)。Androidスタジオを使用しています。プロジェクトを「作成」しようとすると、フラグメント内で「getActivity」を呼び出すたびにコンパイラがエラーを返します。彼は FragmentActivity を持っていることを教えてくれますが、ActionBarActivity が期待されており、それらのクラスには互換性がないことがわかります。中断され、アプリをテストすることさえできません。

Gradle の設定に問題があるのか​​もしれませんが、これで述べたように、build.gradle ファイルの「依存関係」の部分に「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」で「getActivity()」をキャストしようとするたびに、これを確認できます。

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 に答える