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:
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Getestet habe ich den Quellcode, und Ihre
MainActivity
stammt ausFormsAppCompatActivity
.In diesem Fall müssen Sie ein Thema, das verwendet
AppCompat
.Lösen, ich habe eine
AppCompat
Thema Ihrer Stile:Und dann verwendet es auf Ihren
MainActivity
: