加载片段活动时的Android.Content.ActivityNotFoundException

时间:2014-05-17 12:00:06

标签: android xamarin android-manifest android-fragmentactivity activitynotfoundexception

我正在使用Xamarin,并在尝试加载Activity时收到错误。

这是错误:

Android.Content.ActivityNotFoundException: Unable to find explicit activity class {com.xamarin.docs.android.mapsandlocationdemo2/simplemapdemo.MapWithMarkersActivity}; have you declared this activity in your AndroidManifest.xml?

这是我的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="5" android:versionName="4.0" package="com.xamarin.docs.android.mapsandlocationdemo2">
    <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="18" />
    <!-- Google Maps for Android v2 requires OpenGL ES v2 -->
    <uses-feature android:glEsVersion="0x00020000" android:required="true" />
    <!-- We need to be able to download map tiles and access Google Play Services-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- Allow the application to access Google web-based services. -->
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <!-- Google Maps for Android v2 will cache map tiles on external storage -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- Google Maps for Android v2 needs this permission so that it may check the connection state as it must download data -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- These are optional, but recommended. They will allow Maps to use the My Location provider. -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <!-- Notice here that we have the package name of our application as a prefix on the permissions. -->
    <uses-permission android:name="com.xamarin.docs.android.mapsandlocationdemo2.permission.MAPS_RECEIVE" />
    <permission android:name="com.xamarin.docs.android.mapsandlocationdemo2.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
    <application android:label="@string/app_name">
        <!-- Put your Google Maps V2 API Key here. This key will not work for you.-->
        <!-- See https://developers.google.com/maps/documentation/android/start#obtaining_an_api_key -->
        <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="key_goes_here" />
        <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
    </application>
</manifest>

我正在加载的Activity位于namespace SimpleMapDemo,这是类声明:

public class MapWithMarkersActivity : Android.Support.V4.App.FragmentActivity

以下是我的活动布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:descendantFocusability="beforeDescendants"
    android:focusableInTouchMode="true"
    android:padding="5dip">
    <FrameLayout
        android:id="@+id/mapWithOverlay"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:background="#ffffff"
        android:layout_below="@+id/thumbnail" />
    <ListView
        android:id="@+id/List"
        android:visibility="gone"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="50dp"
        android:layout_marginBottom="50dp" />
    <EditText
        android:id="@+id/inputSearch"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:hint="Find..."
        android:layout_alignParentTop="true" />
</RelativeLayout>

我能帮助您使用此代码吗?

提前致谢

修改

现在在AndroidManifest.xml中

<application android:label="@string/app_name">
    <activity android:name="com.xamarin.docs.android.mapsandlocationdemo2/simplemapdemo.MapWithMarkersActivity" android:label="@string/app_name" ></activity>
    <!-- Put your Google Maps V2 API Key here. This key will not work for you.-->
    <!-- See https://developers.google.com/maps/documentation/android/start#obtaining_an_api_key -->
    <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="key_goes_here" />
    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
</application>

这仍然是错误:

Unable to find explicit activity class {com.xamarin.docs.android.mapsandlocationdemo2/simplemapdemo.MapWithMarkersActivity}; have you declared this activity in your AndroidManifest.xml?

2 个答案:

答案 0 :(得分:1)

Activity内的清单中声明<application>,如下所示:

<activity android:name="com.example.pacakge.MainActivity" android:label="@string/app_name" ></activity>

答案 1 :(得分:0)

您必须在清单

中注册您的活动