【发布时间】:2018-06-20 03:18:52
【问题描述】:
我正在创建一个简单的 Android 应用,其中包含简单的控件/视图,例如 Label, Entry and Buttons
- 目标框架:Android 8.1
- 目标安卓版本:安卓8.1
- 最低 Android 版本:Android 4.4
存档并生成APK文件后,我成功地将它安装在我的逍遥模拟器(Android版本:5.1)中。但是当我试图打开它时,应用程序崩溃了。
这是我从设备日志工具得到的错误:
System.NullReferenceException: Object reference not set to an instance of an object
at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.InternalSetPage (Xamarin.Forms.Page page) [0x0006f] in <99988d4ab8d144898ef5bc7586876d75>:0
at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.SetMainPage () [0x0000c] in <99988d4ab8d144898ef5bc7586876d75>:0
at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.LoadApplication (Xamarin.Forms.Application application) [0x0026f] in <99988d4ab8d144898ef5bc7586876d75>:0
at SampleApp.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x00028] in <eaa39f9ef27d400ebfed424165f990c2>:0
at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x0000f] in <818821ea7e204c78a45bc29cdc69e744>:0
at (wrapper dynamic-method) System.Object.fe8f1617-954f-4716-901a-433b7f8b44bf(intptr,intptr,intptr)
我怀疑这是Xamarin.Forms.Platform.Android.FormsAppCompatActivity 问题。因为当我将 MainActivity 父类更改为 Xamarin.Forms.Platform.Android.FormsApplicationActivity 它运行没有错误。
但是如何在不切换到 FormsApplicationActivity 的情况下修复此错误??
编辑:当我在“打包属性”中禁用 ProGuard 时,应用程序运行顺畅。 (为什么?)
【问题讨论】:
-
在使用
FormsAppCompatActivity时,您是否创建了正确的主题/样式,在您的Xamarin.Android项目中分配了该主题,设置了Tabbar.axml、Toolbar.axml 布局...... -
@SushiHangover 我已经在 AndroidManifest.xml 中编辑了应用程序元素(添加了
android:theme="@style/MainTheme")。 Tabbar 和 Toolbar.axml 主题是"@style/ThemeOverlay.AppCompat.Dark.ActionBar"。顺便说一句,当 ProGuard 被禁用时,应用程序运行没有问题。 -
ProGuard is disable the app... 哦.....这需要在您的问题中,logcat中看到的错误是什么,您是否有自定义的 proguard 配置? -
@SushiHangover 我的意思是当我在“打包属性”中禁用 ProGuard 时,应用程序运行没有问题。 logcat 和设备日志(来自 Visual Studio)是否不同?
-
你有自定义的 proguard 配置吗?什么版本的表格? 3.0 或 2.5
标签: android xamarin xamarin.forms xamarin.android