У меня есть решение xamarin с двумя проектами android. Я хочу запустить действие android в проекте1 из проекта2. Я видел темы, связанные с этим топом c (например, Как вызвать действие в другом проекте? Вызов активности из другого проекта ) и пробовал много предлагаемых решений, но в конце Я всегда получаю «Android .Content.ActivityNotFoundException:» Невозможно найти явный класс активности {companyname.project2 / companyname.project2.Droid.View.LoginView}; Вы объявили об этом действии в своем AndroidManifest. xml? '”ошибку. Возможно ли это в xamarin, если да, как? Я делаю что-то неправильно? Вот мой исходный код:
Project1:
namespace BigAppManager {
[Activity (MainLauncher = true, Name = "com.companyname.bigappmanager.MainActivity", Label = " Logowanie", ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize, NoHistory = true, LaunchMode = LaunchMode.SingleInstance)]
public class MainActivity : MvxActivity<MainActivityViewModel> {
protected override void OnCreate (Bundle savedInstanceState) {
base.OnCreate (savedInstanceState);
Xamarin.Essentials.Platform.Init (this, savedInstanceState);
SetContentView (Resource.Layout.activity_main);
Button button = FindViewById<Button> (Resource.Id.button);
button.Click += ClickButton;
}
private void ClickButton (object sender, EventArgs e) {
//Intent intent = new Intent("companyname.project2.Droid.View.LoginView");
//StartActivity(intent);
Intent intent = new Intent (Intent.ActionMain);
intent.AddCategory (Intent.CategoryLauncher);
// intent.SetClassName("companyname.project2", "companyname.project2.Droid.View.LoginView");
intent.SetComponent (new ComponentName ("companyname.project2", "companyname.project2.Droid.View.LoginView"));
StartActivity (intent);
}
public override void OnRequestPermissionsResult (int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults) {
Xamarin.Essentials.Platform.OnRequestPermissionsResult (requestCode, permissions, grantResults);
base.OnRequestPermissionsResult (requestCode, permissions, grantResults);
}
}
}
Project2:
[Activity(Name = "companyname.project2.Droid.View.LoginView", Label = " Logowanie", ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize, NoHistory = true, LaunchMode = LaunchMode.SingleInstance)]
public class LoginView : MvxActivity<LoginViewModel>
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.LoginView);
}
}
Project 2 android фильтр намерений манифеста:
<activity android:name="companyname.project2.Droid.View.LoginView">
<intent-filter>
<action android:name="companyname.project2.View.LoginView"></action>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>