2017-05-30 6 views
1

AppCompatActivityから拡張されたクラスがFragmentActivityに拡張されています。FragmentActivityのアクティビティメソッド

setTitle()のように、私はgetActivity()メソッドを呼び出す部分があります。

私は、次のような問題に気づいたアンドロイドメーカー3.0カナリア2を使用した後:エラー

として IDEマークが法FragmentActivityでオーバーライドされないか、存在していません

へのすべてのメソッドを解決することはできませんがまたはAppCompatActivitysetTitle(),runOnUiThread()など多くのものがあります。

しかし、プロジェクトはビルドしてコンパイルしてもエラーは発生しません。

質問この問題を解決するにはどうすればよいですか?私は

  1. は、キャッシュを無効にして

を再起動してみました何

更新、この問題が持っているあなたは抽象的問題のためのコードを必要とする理由はわかりませんが、

public class FullViewActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_full_view); 
     setTitle("test"); //method is not resolved 
     getIntent(); //method is not resolved 
    } 
} 
+0

@LuizFernandoSalvaterraを掲載。しかし、IDEが明白なIDEの問題をどのように助けることができるのか分かりません。特に、このコードが動作し、以前のバージョンのAndroid Studioでマークが検出されなかった場合。 – DEADMC

答えて

1

しばらくの間周りにあった、そして、通常は古くからのsupp ortライブラリのバージョン。

android.support.v7.app.AppCompatActivityのクラス階層に従うと、android.app.Activityから拡張されていることがわかります。しかし、その途中で、あなたの問題を引き起こす可能性が高いandroid.support.v4.app.SupportActivityクラスの興味深い注釈があります。これには@RestrictToというアノテーションがあります。このアノテーションは、特定のクラスのセット(デフォルトのJava可視性構造とは異なる種類の細かさで)へのアクセスを制限することを目的としています。 この場合、のアノテーションは、SupportActivityとすべてのサブクラス(つまりActivity)からすべてのメソッドにアクセスする能力をブロックする可能性があります。

これは、私のappcompatを最新のバージョン(執筆時点で25.3.1)に更新するだけで解決できました。元のバージョンはGROUP_IDのグループを持ち、後でLIBRARY_GROUPに変更されました。私はアンドロイドスタジオでこれらの注釈を処理する方法があなたの問題の原因だと思っています。

この問題の解決のバージョンは、Androidのスタジオのバグトラッカーにあります:https://issuetracker.google.com/issues/37130193

+0

はい!それが助けになった!ビルドツールのバージョンを25.0.3に変更しました。あなたは25.3.1について確信していますか?ここに依存https://developer.android.com/studio/releases/build-tools.html最新は25.0.3です。とにかく、助けてくれてありがとう。 – DEADMC

関連する問題