Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Xamarin.Android中的浮动操作按钮激活JNI句柄异常_Android_Xamarin_Xamarin.android_Material Design_Floating Action Button - Fatal编程技术网

无法使用Xamarin.Android中的浮动操作按钮激活JNI句柄异常

无法使用Xamarin.Android中的浮动操作按钮激活JNI句柄异常,android,xamarin,xamarin.android,material-design,floating-action-button,Android,Xamarin,Xamarin.android,Material Design,Floating Action Button,我正在尝试使用将FloatingActionButton集成到我的应用程序中。在布局膨胀时,它引发异常“无法将Java类型为'com/refractored/fab/FloatingActionButton'的JNI句柄0xffb8b288(密钥句柄0x3ee746ea)激活为托管类型'com.refractored.fab.FloatingActionButton' 布局文件 <?xml version="1.0" encoding="utf-8"?> <Frame

我正在尝试使用将FloatingActionButton集成到我的应用程序中。在布局膨胀时,它引发异常“无法将Java类型为'com/refractored/fab/FloatingActionButton'的JNI句柄0xffb8b288(密钥句柄0x3ee746ea)激活为托管类型'com.refractored.fab.FloatingActionButton'

布局文件

    <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             xmlns:fab="http://schemas.android.com/apk/res-auto"
             android:layout_width="match_parent"
             android:layout_height="match_parent"> 
    <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="match_parent" /> 
    <com.refractored.fab.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|right"
            android:layout_margin="16dp"
            android:src="@drawable/ic_edit"
            fab:fab_colorNormal="@color/primary"
            fab:fab_colorPressed="@color/primary_pressed"
            fab:fab_colorRipple="@color/ripple" />
</FrameLayout>

活动代码:

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS; 
using Android.Support.V4.App; 
using ActionBar =  Android.Support.V7.App.ActionBar;
using Android.Text;
using com.refractored.fab;  
using Android.Support.V7.App; 

namespace SampleActionBar
{
    [Activity (Label = "SampleActionBar", MainLauncher = true, Icon = "@mipmap/icon")]
    public class MainActivity : ActionBarActivity, ActionBar.ITabListener
    { 
        protected override void OnCreate (Bundle savedInstanceState)
        {
            base.OnCreate (savedInstanceState);
            InitActionBar (); 
        } 
        private void InitActionBar()
        {
            if (SupportActionBar == null)
                return;

            var actionBar = SupportActionBar;
            actionBar.NavigationMode = (int)ActionBarNavigationMode.Tabs;

            var tab1 = actionBar.NewTab();
            tab1.SetTabListener(this);
            tab1.SetText("ListView");
            actionBar.AddTab(tab1); 
        }
        public void OnTabReselected(ActionBar.Tab tab, Android.Support.V4.App.FragmentTransaction ft)
        {
        } 
        public void OnTabSelected(ActionBar.Tab tab, Android.Support.V4.App.FragmentTransaction ft)
        {
            switch (tab.Text)
            {
            case "ListView":
                ft.Replace(Android.Resource.Id.Content, new ListViewFragment());
                break; 
            }
        } 
        public void OnTabUnselected(ActionBar.Tab tab, Android.Support.V4.App.FragmentTransaction ft)
        { 
        } 
    } 
    public class ListViewFragment:Android.Support.V4.App.Fragment, IScrollDirectorListener, AbsListView.IOnScrollListener
    {
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            var root = inflater.Inflate(Resource.Layout.Main, container, false);

            var list = root.FindViewById<ListView>(Android.Resource.Id.List);
            var adapter = new ListViewAdapter(Activity, Resources.GetStringArray(Resource.Array.countries));
            list.Adapter = adapter;

            var fab = root.FindViewById<FloatingActionButton>(Resource.Id.fab);
            //fab.AttachToListView(list, this, this);
            fab.Click += (sender, args) =>
            {
                Toast.MakeText(Activity, "FAB Clicked!", ToastLength.Short).Show();
            };
            return root;
        }
        public void OnScrollDown()
        { 
        }

        public void OnScrollUp()
        { 
        }

        public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)
        { 
        }

        public void OnScrollStateChanged(AbsListView view, ScrollState scrollState)
        { 
        }
    }
}
使用系统;
使用Android.App;
使用Android.Content;
使用Android.Runtime;
使用Android.Views;
使用Android.Widget;
使用Android.OS;
使用Android.Support.V4.App;
使用ActionBar=Android.Support.V7.App.ActionBar;
使用Android.Text;
使用com.refractored.fab;
使用Android.Support.V7.App;
名称空间SampleActionBar
{
[活动(Label=“SampleActionBar”,MainLauncher=true,Icon=“@mipmap/Icon”)]
公共类主活动:ActionBarActivity,ActionBar.ITabListener
{ 
创建时受保护的覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
InitActionBar();
} 
私有void InitActionBar()
{
如果(SupportActionBar==null)
返回;
var actionBar=SupportActionBar;
actionBar.NavigationMode=(int)ActionBarNavigationMode.Tabs;
var tab1=actionBar.NewTab();
表1.设置列表器(本);
表1.SetText(“列表视图”);
actionBar.AddTab(表1);
}
已重新选择public void ontaber(ActionBar.Tab选项卡,Android.Support.V4.App.FragmentTransaction ft)
{
} 
已选择的公共事务(ActionBar.Tab选项卡,Android.Support.V4.App.FragmentTransaction ft)
{
开关(制表符文本)
{
案例“ListView”:
ft.Replace(Android.Resource.Id.Content,新的ListViewFragment());
打破
}
} 
已选择公共选项卡(ActionBar.Tab选项卡,Android.Support.V4.App.FragmentTransaction ft)
{ 
} 
} 
公共类ListViewFragment:Android.Support.V4.App.Fragment、IScrollDirectorListener、AbsListView.IOnScrollListener
{
创建视图上的公共覆盖视图(布局、充气机、视图组容器、捆绑包保存状态)
{
var root=充气机。充气(Resource.Layout.Main,container,false);
var list=root.findviewbyd(Android.Resource.Id.list);
var adapter=newlistViewAdapter(Activity,Resources.GetStringArray(Resource.Array.countries));
list.Adapter=适配器;
var fab=root.findviewbyd(Resource.Id.fab);
//附件组件视图(列表,这个,这个);
工厂单击+=(发件人,参数)=>
{
Toast.MakeText(活动“FAB Clicked!”,ToastLength.Short).Show();
};
返回根;
}
public void OnScrollDown()
{ 
}
公共无效OnScrollUp()
{ 
}
public void OnScroll(AbsListView视图、int firstVisibleItem、int visibleItemCount、int totalItemCount)
{ 
}
CrollStateChanged上的公共无效(AbsListView视图、ScrollState ScrollState)
{ 
}
}
}
目标sdk版本为23,最小版本为16。
升级了android支持V4、V7 AppCompat(23.1.1.0)和refractored.fab(1.4.0)软件包。
xamarin组件的示例代码运行良好,没有任何问题
发生此异常的原因可能是什么?任何建议/提示都将不胜感激。

感谢您

该组件已被弃用,取而代之的是使用
FloatingActionButton
的支持库版本。您可以删除该组件,并确保包含来自Nuget(23.1.1.0)的最新设计库包。那么你应该能够做到以下几点

<android.support.design.widget.FloatingActionButton
  ...
  android:id="@+id/fab" />

在你的代码里有这个
使用Android.Support.Design.Widget

这正是我要找的。