【问题标题】:Xamarin Android bind and use Java library in Visual StudioXamarin Android 在 Visual Studio 中绑定和使用 Java 库
【发布时间】:2016-08-13 08:19:17
【问题描述】:

我想将这个浮动操作按钮库从 github 添加到我的 Visual Studio 项目中: https://github.com/Clans/FloatingActionButton

我按照此描述建议添加绑定库 (Android)。 (https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/binding-a-jar/)

我尝试使用 .jar.aar 文件进行绑定。 文件似乎没问题,但在导入过程中出现以下异常:

BINDINGSGENERATOR : warning BG8601: No packages found

JARTOXML : warning J2X9001: Couldn't load class com/github/clans/fab/FloatingActionButton$1 : java.lang.NoClassDefFoundError: android/view/ViewOutlineProvider

任何帮助表示赞赏。

【问题讨论】:

    标签: java android visual-studio xamarin binding


    【解决方案1】:

    (这是我做过的最干净的绑定之一,通常你最终会进行很多转换......)

    • 从头开始,通过模板创建一个新的Xamarin.Android解决方案/项目。

    • 将 Android 库绑定项目添加到您的解决方案中。

    • fab-1.6.3.aar 添加到Jars 文件夹:

    (我使用了 Github 项目网站上列出的direct link to Maven Central

    注意:确保在添加 .arr 后将其标记为 LibraryProjectZip 的构建操作。

    构建 Binding 项目,您应该会收到一些关于覆盖但没有错误的警告。

    • 转到您的主 Xamarin.Android 应用程序项目并添加对绑定项目的引用。

    • 打开 Resources/Layout/Main.axml 文件并替换内容:


    <?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="@+id/list"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|right"
            android:layout_marginBottom="8dp"
            android:layout_marginRight="8dp"/>
    </FrameLayout>
    
    • 在您的模拟器上构建并运行它,还不够性感,因为没有代码填充任何东西,但它可以工作:

    注意:我继续从他们的 github 示例中导入了 所有 资源,否则如果您开始使用他们的示例 xml 布局和代码,您最终会遇到很多关于缺少资源的编译错误。

    FloatingActionButton/sample/src/main/res:
    anim            drawable-xxhdpi     mipmap-xhdpi
    drawable        drawable-xxxhdpi    mipmap-xxhdpi
    drawable-hdpi       layout          values
    drawable-mdpi       menu            values-v21
    drawable-v21        mipmap-hdpi     values-w820dp
    drawable-xhdpi      mipmap-mdli
    

    并为MainActivity OnCreate 和 Fragments 转换了足够的 Java 代码来测试它,我尝试过的一切正常:

    【讨论】:

    • 我尝试了你的解决方案,我得到了一点进一步的 --> 它现在编译没有任何异常。不幸的是,在执行过程中我得到以下异常:原因:java.lang.ClassNotFoundException:找不到类“com.github.clans.fab.FloatingActionButton”
    • 您是否将 Android Library Binding 项目作为项目参考添加到您的主 Android 应用程序中?
    • 是的 - 我听从了你的指示。这有点奇怪 - Xamarin 演示的官方文件正在运行。 developer.xamarin.com/guides/android/advanced_topics/… (textanalyzer.aar)
    • @CreateAHero np,很高兴看到你通过 Nuget 版本让它工作
    【解决方案2】:

    虽然 SushiHangovers 的回答在进行自己的绑定方面是正确的。 但是,如果您只想使用 Clans Floating Action Button 库,您可以轻松安装 FAB.XamarinAndroid via nuget,它已经为您完成了该库的绑定。

    编辑

    GitHub repo,您可以在其中查看绑定项目的结构。

    【讨论】:

      猜你喜欢
      • 2022-10-24
      • 1970-01-01
      • 1970-01-01
      • 2023-02-06
      • 1970-01-01
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多