2017-05-04 71 views
0

我目前正在使用Xamarin在Visual Studio 2017中開發一個Androd應用程序,我有點兒是初學者。 我的主要活動是「MainActivity.cs」,在這個活動中,我通過單擊按鈕導航到另一個活動。我這樣做的代碼:在StartActivity的Android.Content.ActivityNotFoundException

var activity2 = new Intent(this, typeof(Menu2)); 
activity2.PutExtra("Token", Token); 
StartActivity(activity2); 

一切工作正常。然後,在第二個活動「Menu2.cs」中,我嘗試通過單擊按鈕導航到另一個活動,但出現錯誤。我使用相同的代碼:

var activity3 = new Intent(this, typeof(Menu3)); 
StartActivity(activity3); 

,但我得到了以下錯誤:

Android.Content.ActivityNotFoundException: 
Unable to find explicit activity class {RWS.RWS/md563c841bc41fc48076b499c07864126c3.Menu3}; 
have you declared this activity in your AndroidManifest.xml? 

現在,我嘗試添加manully在AndroidManifest的活動,因爲Visual Studio中不會自動添加。這並沒有工作。目前,我的AndroidManifest文件是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="RWS.RWS" android:versionCode="1" android:versionName="1.0" 
    android:installLocation="auto"> 
    <uses-sdk android:minSdkVersion="16" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <application android:label="RWS" android:icon="@drawable/rws"></application> 
</manifest> 

另外,如果有幫助,我活動的標題(菜單2和菜單3)如下:

[Activity(Label = "Menu2", MainLauncher = true, Icon = "@drawable/EAD", Theme = "@android:style/Theme.Light.NoTitleBar.Fullscreen")] 
public class Menu2 : Activity 

[Activity(Label = "Menu3", Icon = "@drawable/EAD", Theme = "@android:style/Theme.Light.NoTitleBar.Fullscreen")] 
public class Menu3 : Activity 

菜單2和菜單3滿級的每個爲通過@Ferdous艾哈邁德問:

namespace RWS 
{ 
    [Activity(Label = "Menu2", MainLauncher = true, Icon = "@drawable/EAD", Theme = "@android:style/Theme.Light.NoTitleBar.Fullscreen")] 
    public class Menu2 : Activity 
    { 
    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 
     string token = Intent.GetStringExtra("Token"); 

     // Create your application here 
     SetContentView(Resource.Layout.Menu2); 

     Button trabalho = FindViewById<Button>(Resource.Id.trabalho); 
     trabalho.Click += delegate 
     { 
      Toast.MakeText(this, "Aguarde...", ToastLength.Short).Show(); 
     }; 

     Button pesquisa = FindViewById<Button>(Resource.Id.pesquisa); 
     pesquisa.Click += delegate 
     { 
      var activity2 = new Intent(this, typeof(Menu3)); 
      //activity2.PutExtra("Token", Token); 
      StartActivity(activity2); 

     }; 

    } 
    } 
} 

namespace RWS 
{ 
    [Activity(Label = "Menu3")] 
    public class Menu3 : Activity 
    { 

     protected override void OnCreate(Bundle savedInstanceState) 
     { 
      base.OnCreate(savedInstanceState); 
      SetContentView(Resource.Layout.Menu3); 
     } 
    } 
} 

請注意,菜單2正常工作而沒有任何的區別,並沒有對AndroidManifest增加,但菜單3沒有。這些活動以相同的方式添加,一個工作,一個不工作。

我該怎麼辦?

+1

把你的androidmenifest文件放在這裏。 –

+0

@BhupatBheda文件代碼在我的問題。 –

+0

發佈完整的menu2類 – FAT

回答

0

看來它實際上並不是這個錯誤。我嘗試重建項目並查看輸出日誌,但是我從未看到實際的代碼錯誤,直到我創建了一個新項目,重新構建了所有內容,然後在我的.xaml文件之一中發現了一個錯誤,項目。

快速提示: 如果Visual Studio拋出錯誤,即使錯誤看起來不正確,請嘗試清理項目並重新構建。之後,檢查輸出日誌,你會發現你的項目是否有錯誤。

感謝那些幫助過我的人。

0

用途:

[Activity(Label = "Menu3")] 
public class Menu3 : Activity 

相反的:

[Activity(Label = "Menu3", Icon = "@drawable/EAD", Theme = "@android:style/Theme.Light.NoTitleBar.Fullscreen")] 
public class Menu3 : Activity 

最後,cleanrebuild項目。

+0

現在我收到以下錯誤: '文件「obj \ Debug \ android \ bin \ packaged_resources」不存在.' –

+0

請參閱:https://bugzilla.xamarin.com/show_bug.cgi?id = 55232瞭解更多關於該錯誤的信息。它應該在下一個版本中修復。 –

0

我有同樣的問題。這是關於命名空間。

我在我的項目「活動」中製作了一個目錄,在其中創建了新的活動文件,並在此文件中自動設置命名空間「myProject.activities」。 然後問題發生。

因此,我將活動中的命名空間更改爲「myProject」,它運行良好。