2017-07-15 11 views
2

私のアプリは正常に動作していました。 Facebookにサインインしてサインアウトしようとすると、突然私はこのエラーが発生することに気付きました。私のアプリでは、Faceboookを使ってサインインすると、Facebookのログインページから成功ページページまで正常に認証されます。成功ページ型パラメータ名:型はjava型から派生しません。 - Xamarin android

、継続をユーザーがクリックする私は続けるをクリックすると、私はエラー

型パラメータ名を取得:タイプは、Javaの型から派生されていませんが。 。タイプに由来するものではない:私はあまりにもログアウトすると、ユーザーが に記録されたことを確認した後、

アプリがクラッシュして再起動すると、それは

タイプパラメータ名が同じエラーを取得しますjava型。

アプリはクラッシュしますが、ユーザーはログアウトしています。私は関連する他の質問を検索したが、誰も私を助けることができなかった。

この原因は何ですか?

public class successPage : Activity 

    { 
     Button button; 
     TextView textViewActivity; 
     FirebaseAuth mAuth; 

     protected override void OnCreate(Bundle savedInstanceState) 
     { 
      base.OnCreate(savedInstanceState); 


      SetContentView(Resource.Layout.successPage); 

      button = (Button)FindViewById(Resource.Id.button); 

      textViewActivity = (TextView)FindViewById(Resource.Id.textView); 

      mAuth = FirebaseAuth.Instance; 



      button.Click += onBtnClick; 

      //textViewActivity.Text = user.DisplayName; 



      // Create your application here 
     } 

     private void onBtnClick(object sender, EventArgs e) 
     { 
      Intent success = new Intent(this, (typeof(EventNews))); 
      StartActivity(success); 
     } 
    } 

このラインにおけるエラー箇所

Intent success = new Intent(this, (typeof(EventNews))); 

EventNews

public class EventNews : BaseActivity, IValueEventListener 
    { 

     protected override void OnCreate(Bundle savedInstanceState) 
     { 
      base.OnCreate(savedInstanceState); 


      FrameLayout content = (FrameLayout)FindViewById(Resource.Id.content_frame); 
      LayoutInflater.Inflate(Resource.Layout.EventNews, content); 



      //initializing firebase 
      user = FirebaseAuth.Instance.CurrentUser; 


      toolbarMain = (Android.Support.V7.Widget.Toolbar)FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolBar); 

      SetSupportActionBar(toolbarMain); 

      TextView toolbarName = (TextView)FindViewById(Resource.Id.counter_text); 

     } 

     } 

     public override bool OnCreateOptionsMenu(IMenu menu) 
     { 

      MenuInflater.Inflate(Resource.Menu.top_menus, menu); 

      var item = menu.FindItem(Resource.Id.search); 

      var searchview = (Android.Support.V7.Widget.SearchView)MenuItemCompat.GetActionView(item); 

      searchview.QueryTextChange += (s, e) => 
      { 

       adapter.Filter.InvokeFilter(e.NewText); 



      }; 

      searchview.QueryTextSubmit += (s, e) => 

      { 

       Toast.MakeText(this, "Searched for: " + e.Query, ToastLength.Short).Show(); 
       e.Handled = true; 
      }; 

      MenuItemCompat.SetOnActionExpandListener(item, new SearchViewExpandListener(adapter)); 




      return base.OnCreateOptionsMenu(menu); 

     } 

     private void Adapter_ItemClick(object sender, int position) 
     { 


     } 

     private class SearchViewExpandListener : Java.Lang.Object, MenuItemCompat.IOnActionExpandListener 
     { 
      private readonly IFilterable _adapter; 

      public SearchViewExpandListener(IFilterable adapter) 
      { 
       _adapter = adapter; 

      } 
      public bool OnMenuItemActionCollapse(IMenuItem item) 
      { 
       _adapter.Filter.InvokeFilter(""); 
       return true; 
      } 

      public bool OnMenuItemActionExpand(IMenuItem item) 
      { 
       return true; 
      } 
     } 

     public void OnCancelled(DatabaseError error) 
     { 
      throw new NotImplementedException(); 
     } 

     public void OnDataChange(DataSnapshot snapshot) 
     { 

      eventNews.Clear(); 
      var items = snapshot.Children.ToEnumerable<DataSnapshot>(); 

      HashMap map; 
      foreach (DataSnapshot item in items) 
      { 
       map = (HashMap)item.Value; 

       eventNews.Add(new EventNews(item.Key.ToString(),map.Get("Name")?.ToString(), map.Get("Achievement")?.ToString(),map.Get("History")?.ToString(),map.Get("Quote")?.ToString(), map.Get("Ref").ToString())); 
      } 

      //list items on listview 
      rv.SetLayoutManager(new LinearLayoutManager(this)); 
      rv.SetItemAnimator(new DefaultItemAnimator()); 
      rv.SetAdapter(adapter); 
      mDialog.Dismiss(); 


     } 
    } 

のStackTrace

at Java.Lang.Class.FromType (System.Type type) [0x00012] in <d855bac285f44dda8a0d8510b679b1e2>:0 
    at Android.Content.Intent..ctor (Android.Content.Context packageContext, System.Type type) [0x00000] in <d855bac285f44dda8a0d8510b679b1e2>:0 
    at peaceApp.Droid.successPage.onBtnClick (System.Object sender, System.EventArgs e) [0x00002] in /Users/emmnock/Documents/Projects/peaceApp/Droid/successPage.cs:76 
    at Android.Views.View+IOnClickListenerImplementor.OnClick (Android.Views.View v) [0x00011] in <d855bac285f44dda8a0d8510b679b1e2>:0 
    at Android.Views.View+IOnClickListenerInvoker.n_OnClick_Landroid_view_View_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_v) [0x0000f] in <d855bac285f44dda8a0d8510b679b1e2>:0 
    at (wrapper dynamic-method) System.Object:579ed970-959a-4157-8d2c-b00f36f55fa7 (intptr,intptr,intptr) 
+0

この行のエラー・ポイント 'Intent success = new Intent(this、(typeof(EventNews)));' – Switz

+0

'EventNews'が何であるかを追加できますか? –

+2

2番目のパラメータは、クラスではなく、タイプと思います。 –

答えて

0

このドキュメントPassing Data Between Activities

をチェックしているなら、あなたはこのラインに気づいたことがあります。プロジェクトにActivity2という名前の第2の活性クラスを追加します

を。 このクラスはAndroid.App.Activityから継承する必要があります。

したがって、問題はtypeof(EventNews)です。何らかの理由で、タイプがあなたのアクティビティのタイプではなく渡されているためです。これは、同じ名前で異なる名前空間に2つのクラスがある場合に発生する可能性があります。

+0

私は本当にこれを得ていません。私はBaseActivityを継承している私のアプリケーションで約4つの他のアクティビティがあるので、私はアクティビティ間でデータを渡すことができます。ベースアクティビティはAppCompatActivityを継承しています。それは私のNavの引き出しとツールバーを設定する場所です。 – Switz

関連する問題