Xamarin Android 偏好 Activity 意图 "Unable to find explicit activity class"

Xamarin Android Preference Activity Intent "Unable to find explicit activity class"

我使用最新的 Xamarin 和 Visual Studio 2017。我有一个测试 activity "Sample" 我想从首选项中 运行。我尝试了不同的方式,但仍然一无所获。有什么想法吗?

样本 class 到 运行:

  namespace TestApp
    {
        [Activity(Label = "Sample", Name = "pl.test.TestApp.Sample")]
        [IntentFilter(new[] { Intent.ActionView })]
        public class Sample : Android.Preferences.PreferenceActivity
        {
            protected override void OnCreate(Bundle savedInstanceState)
            {
                base.OnCreate(savedInstanceState);
                SetContentView(Resource.Layout.login);           
            }
        }
    }

使用这个我尝试 运行 示例 activity:

<SwitchPreferenceCompat
        android:key="pref_pow"
        android:title="Pow pow"
        android:summary="Pow summary" />
     <PreferenceScreen
            android:key="rename"
            android:title="test"
            android:persistent="false"
            android:summary="test test test">
          <intent
            android:action="android.intent.action.VIEW"
            android:targetPackage="pl.test.TestApp"
            android:targetClass="Sample"/>
        </PreferenceScreen>

我遇到一个错误:

Android.Content.ActivityNotFoundException: Unable to find explicit activity class {pl.test.testapp/Sample}; have you declared this activity in your AndroidManifest.xml?

但在 Xamarin 中我不应该编辑 AndroidManifest.xml

targetClass 应该是完全限定的 class 名称,并且由于您使用的是带有参数 Name = "pl.test.TestApp.Sample"ActivityAttribute,那么您的意图应该是:

~~~
android:targetPackage="pl.test.TestApp"
android:targetClass="pl.test.TestApp.Sample"/>
~~~