Xamarin Forms MainActivity OnCreate LoadApplication System.NullReferenceException: der Objektverweis wurde nicht auf eine Instanz eines Objekts

Ich bin mit VS2015 mit Xamarin erstellen Sie eine multi-Plattform-Projekt zeigen kann, dass ein splashscreen und dann laden Sie eine Webseite in einer webview. Hier ist mein Projekt-Struktur. Ich bin mit einem PCL-Projekt-Typ wie folgt:

Xamarin Forms MainActivity OnCreate LoadApplication System.NullReferenceException: der Objektverweis wurde nicht auf eine Instanz eines Objekts

TheApp (Portable)

-WebPageHoster.Xaml     //Contains a WebView control
   -WebPageHoster.Xaml.cs  //sets the WebView controls source property to load a webpage
   -App.Xaml
   -App.Xaml.cs

TheApp.Droid

/Resources/drawable/splashlogo.png
/Resources/drawable/icon3.png
/Resources/values/Styles.xml
-MainActivity.cs
-SplashActivity.cs     

TheApp.iOS

TheApp.WindowsPhone(Windows Phone 8.1)

Dies ist der code in der Styles.xml

<?xml version="1.0" encoding="utf-8" ?> 
<resources>
    <style name="Theme.Splash" parent="android:Theme">
        <item name="android:windowBackground">@drawable/splashlogo</item>
        <item name="android:windowNoTitle">true</item>
    </style>
</resources>

SplashActivity.cs

[Activity(MainLauncher = true, NoHistory = true, Theme = "@style/Theme.Splash", Icon = "@drawable/icon3")]
public class SplashActivity : AppCompatActivity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        var intent = new Intent(this, typeof(MainActivity));
        StartActivity(intent);
        Finish();
    }
}

MainActivity.cs

[Activity(Label = "Splash App",  ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        global::Xamarin.Forms.Forms.Init(this, bundle);
        LoadApplication(new App());  //<< Problem here
    }

Den LoadApplication Aufruf der Methode in der OnCreate Methode vor, lädt die app Konstruktor der App.Xaml.cs-Klasse, die ausgeführt wird, den folgenden code

public App()
{
InitializeComponent();
MainPage = new NavigationPage(neue WebPageHoster() { Title = "Laden der Web-Page" });
}

Dieser zeigt den splash-screen und nach Einstellung des WebView die url reicht zurück bis in die OnCreate-Methode und gibt diese Fehler

System.NullReferenceException: Object reference not set to an instance of an object

Ich bin nicht in der Lage zu finden, was diesen Fehler verursacht. Hier ist die Android-Manifest-Datei.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="TheApp.TheApp" android:installLocation="auto" android:versionCode="1">
    <uses-sdk android:minSdkVersion="15" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <application android:icon="@drawable/icon3" android:theme="@style/Theme.AppCompat" android:label="Splash Web Host"></application>
</manifest>
  • teilen Sie die Quelle bitte. sollten Sie sich nicht fügen zu viel code in der Frage.
  • geändert von FormsApplicationActivity zu FormsAppCompatActivity und habe ein neues problem. Code hochgeladen zu dropbox dropbox.com/s/p2snfvsyhhwopgn/STM-full.zip?dl=0
InformationsquelleAutor user20358 | 2016-06-25
Schreibe einen Kommentar