簡體   English   中英

Xamarin 表單,在 Visual Studio Android 模擬器上運行的應用程序但在真實設備上崩潰

[英]Xamarin forms, App running on Visual Studio Android Emulator But crashes on real device

我創建了一個應用程序,當構建應用程序時,它可以在 Visual Studio 模擬器上完美運行。 因此,我創建了構建版本並嘗試在我的物理 android 設備上運行該應用程序。 我在設備上收到以下錯誤消息。 我用過Xam.plugin.media

android.runtime.JavaProxyThrowable:System.NullReferenceException:對象引用未設置為 Xamarin.Forms.Platform.Android.FormsAppCompatActivity.InternalSetPage(Xamarin.Forms.Page 頁面)中的對象實例:0 在 Xamarin.Forms .Platform.Android.FormsAppCompatActivity.SetMainPage () [0x0000c] in :0 at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.LoadApplication (Xamarin.Forms.Application application) [0x0025c] in :0 at InterestMatch.Droid.MainActivity.OnCreate (Android.OS.Bundle 包) [0x00033] 在 <9e2a066af7c24de6828dc3a0f4e22d31>:0 在 Android.Support.V4.App.FragmentActivity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.Int0Pnative.Intr0Pnative_snative.Intr0pnative.Intr0npnative.Intr0.0.0 1e89c43d3c7d48b5ba69bfc0b1bdf114>:0在(包裝紙動態方法)System.Object的:在md5ed93386354f0e17f050b2885712023ca.MainActivity.n_onCreate(本機方法)6b534aff-3541-46f2-a92e-ac0022b9c4a7(IntPtr的,IntPtr的,IntPtr的)在md5ed93386354f0e17f050b2885 712023ca.MainActivity.onCreate(MainActivity.java:29) at android.app.Activity.performCreate(Activity.java:6303) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2402) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2509) at android.app.ActivityThread.access$1000(ActivityThread.java:153) at android.app.ActivityThread$H.handleMessage(ActivityThread) .java:1373) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:5523)在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.爪哇:629)

這是我的代碼

主Activity.cs

public class MainActivity global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;



        Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity = this;

        base.OnCreate(bundle);

        global::Xamarin.Forms.Forms.Init(this, bundle);
        LoadApplication(new App());
    }



    public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
    {
        PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
    }

}

應用程序.xaml.cs

     using InterestMatch.Inter;
     using InterestMatch.Models;
     using System;
     using System.Collections.Generic;
     using System.Linq;
     using System.Text;
     using Xamarin.Auth;
     using Xamarin.Forms;

     namespace InterestM
     {
     public partial class App : Application
{

    public static string AppName { get { return "StoreAccountInfoApp"; } }

    public static ICredentialsService CredentialsService { get; private set; }

    public App ()
    {                      
         var account = AccountStore.Create().FindAccountsForService(App.AppName).FirstOrDefault();

         CredentialsService = new CredentialsService();

        if (CredentialsService.DoCredentialsExist())
        {
            InitializeComponent();               
            MainPage = new NavigationPage(new InterestM.MainMenu(account.Username.ToString()));
        }
        else
        {
            InitializeComponent();
            MainPage = new NavigationPage(new InterestM.Accounts.Login());
        }

    }

    protected override void OnStart ()
    {
        // Handle when your app starts
    }

    protected override void OnSleep ()
    {
        // Handle when your app sleeps
    }

    protected override void OnResume ()
    {
        // Handle when your app resumes
    }
}

}

更改 Android 項目選項為我解決了這個問題。

打開您的 Android 項目的屬性。 轉到 Android 選項。 將 Linking 屬性更改為"Sdk Assemblies Only"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM