Xamarin Android mengikat dan menggunakan perpustakaan Java di Visual Studio

Saya ingin menambahkan pustaka tombol tindakan Mengambang ini dari github ke proyek Visual Studio saya: https://github.com/Clans/FloatingActionButton

Saya mengikuti deskripsi ini dengan menyarankan menambahkan Binding Library (Android). (https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/binding-a-jar/)

Saya mencoba mengikat dengan file .jar dan .aar. File-file tersebut tampaknya baik-baik saja tetapi selama impor saya mendapatkan pengecualian berikut:

BINDINGSGENERATOR : warning BG8601: No packages found

OR

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

Bantuan apa pun dihargai.


person CreateAHero    schedule 20.04.2016    source sumber


Jawaban (2)


Sementara jawaban SushiHangovers benar dalam hal melakukan pengikatan Anda sendiri. Namun jika Anda hanya ingin menggunakan pustaka Tombol Tindakan Mengambang Klan, Anda dapat dengan mudah menginstal FAB.XamarinAndroid via nuget yang telah melakukan pengikatan perpustakaan ini untuk Anda.

Edit

Repo GitHub tempat Anda dapat melihat struktur proyek pengikatan.

person Plac3Hold3r    schedule 20.04.2016

(Itu adalah salah satu penjilidan terbersih yang pernah saya lakukan, biasanya Anda akan mendapatkan banyak transformasi...)

  • Mulai dari Awal, dan buat Xamarin.Android solusi/proyek baru melalui templat.

  • Tambahkan proyek Android Library Binding ke solusi Anda.

  • Tambahkan fab-1.6.3.aar ke folder Jars:

(Saya menggunakan tautan langsung ke Maven Central terdaftar di situs proyek Github)

Catatan: Pastikan .arr ditandai sebagai tindakan build LibraryProjectZip setelah menambahkannya.

Bangun proyek Binding, Anda akan mendapat beberapa peringatan tentang penggantian tetapi tidak ada kesalahan.

  • Buka proyek aplikasi Xamarin.Android utama Anda dan tambahkan referensi ke proyek pengikatan.

  • Buka file Resources/Layout/Main.axml Anda dan ganti isinya:


<?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>
  • Bangun dan Jalankan di emulator Anda, belum cukup seksi karena tidak ada kode yang mengisi apa pun tetapi berfungsi:

masukkan deskripsi gambar di sini

Catatan: Saya melanjutkan dan mengimpor semua sumber daya dari sampel github mereka, jika tidak, Anda akan mendapatkan banyak kesalahan kompilasi terkait sumber daya yang hilang jika Anda mulai bekerja dengan contoh tata letak dan kode xml mereka.

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

Dan cukup mengonversi kode Java untuk MainActivity OnCreate dan Fragmen untuk mengujinya dan semuanya berfungsi yang saya coba:

masukkan deskripsi gambar di sini

person SushiHangover    schedule 20.04.2016
comment
Saya mencoba solusi Anda dan mendapatkan sedikit lebih jauh --› solusi tersebut dikompilasi sekarang tanpa pengecualian apa pun. Sayangnya selama eksekusi saya mendapatkan pengecualian berikut: Disebabkan oleh: java.lang.ClassNotFoundException: Tidak menemukan kelas com.github.clans.fab.FloatingActionButton - person CreateAHero; 21.04.2016
comment
Apakah Anda menambahkan proyek Android Library Binding ke aplikasi Android utama Anda sebagai referensi proyek? - person SushiHangover; 21.04.2016
comment
Ya - saya mengikuti instruksi Anda. Agak aneh - file resmi dari demo Xamarin berfungsi. developer.xamarin.com/guides /android/advanced_topics/ (textanalyzer.aar) - person CreateAHero; 21.04.2016
comment
@CreateAHero np, Senang melihat Anda dapat menjalankannya melalui versi Nuget - person SushiHangover; 22.04.2016