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"/>
~~~
我使用最新的 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"/>
~~~