提问人:user3582780 提问时间:6/7/2018 更新时间:6/7/2018 访问量:260
Xamarin 最新更新 findviewbyid 返回 null
Xamarin latest update findviewbyid returns null
问:
我刚刚安装了 Xamarin for Visual Studio 的最新更新。 从那以后,android 在我的活动布局中找不到视图。 显然,当我保存资源时,自动生成的 ID 没有正确更新。
如果我清理项目并重新生成,我的应用程序运行良好。但是在编码 20 分钟后,问题将再次出现。
简单代码:Resources/Layout/Main.axml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="9dp"
android:paddingBottom="9dp">
<Button
android:text="@string/action_stockcount"
android:layout_width="match_parent"
android:layout_height="90dp"
android:id="@+id/btnStockCount"
android:layout_marginLeft="18dp"
android:layout_marginRight="18dp"
android:layout_marginStart="9dp"
android:layout_marginTop="9dp"
android:textColor="@color/menu_button_text"
android:textSize="30dp"
android:drawableLeft="@drawable/menu_stockcount_big"
android:paddingLeft="18dp"
android:paddingRight="18dp"
android:paddingBottom="9dp"
android:paddingTop="9dp" />
</LinearLayout>
</ScrollView>
MainActivity.designer.cs:
using ...
namespace MyApp.Droid.Activities
{
public partial class MainActivity
{
private Button btnStockCount;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
SetTitle(Resource.String.ApplicationName);
btnStockCount = FindViewById<Button>(Resource.Id.btnStockCount);
// From time to time, this gives a NullReferenceException
btnStockCount.Click += BtnStockCount_Click;
InitComplete(savedInstanceState);
}
}
}
MainActivity.cs(不太重要):
using ...
namespace MyApp.Droid.Activities
{
public partial class MainActivity : Activity
{
private void BtnStockCount_Click(object sender, EventArgs e)
{
StartActivity(typeof(IndexStockCountActivity));
}
}
}
我知道android是如何工作的,我知道Xamarin是如何工作的。为什么 Xamarin 的最新更新会导致此问题(保存资源时未正确更新的 ID)?我能做些什么来解决这个问题?
不得不调试我的项目真的很烦人,注意到它再次运行不正常,并且必须清理和重建,然后注意到它正在工作。
我也已经注意到,当它不起作用时,在我清理和重建资源 ID 后,资源 ID 实际上发生了变化。
干杯
答: 暂无答案
评论