Rumah > Java > javaTutorial > Cara menggunakan API versi tinggi Java dalam Android

Cara menggunakan API versi tinggi Java dalam Android

WBOY
Lepaskan: 2023-04-18 21:07:05
ke hadapan
1348 orang telah melayarinya

    Pemalam Android membuka sokongan untuk API baharu

    Pada hari ini, Xiao Wang mengimport perpustakaan, dan sebahagian besar daripadanya ranap sejurus selepasnya pergi dalam talian? Cari masalah:

    Cara menggunakan API versi tinggi Java dalam Android

    Apa kejadahnya? Tidak dapat menggunakan Android 8.0? Dengan cara ini, semua telefon mudah alih yang dilancarkan di bawah 8.0 ranap. Selepas menyemak, saya mendapati bahawa saya perlu mendayakan pemalam untuk mengaktifkan sokongan untuk Java Api

    android {
      defaultConfig {
        multiDexEnabled true
      }
    
      compileOptions {
        // Flag to enable support for the new language APIs
        coreLibraryDesugaringEnabled true
    
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
      }
    }
    
    dependencies {
      coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
    }
    Salin selepas log masuk

    Pastikan anda menghidupkan multiDexEnabled Prinsipnya ialah pakej dex yang berasingan akan dibuat semasa penyusunan untuk melakukan beberapa pemprosesan keserasian.

    Kelas yang biasa digunakan yang memerlukan pemprosesan yang serasi:

    1 pemprosesan tarikh LocalDate

    		// 日期
    		LocalDate today = LocalDate.now();
    		// 几号
    		int dayofMonth = today.getDayOfMonth();
    		// 星期几
    		int dayofWeek = today.getDayOfWeek().getValue();
    		// 今年
    		int dayofYear = today.getDayOfYear();
    		
    		LocalDate endOfFeb = LocalDate.parse("2018-02-28"); 
    
                    // 取本月第1天:
    		LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth()); 
    		// 取本月第2天:
    		LocalDate secondDayOfThisMonth = today.withDayOfMonth(2); 
    
    		// 取本月最后一天,再也不用计算是28,29,30还是31:
    		LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth());
    
    		// 取下一天:
    		LocalDate firstDayOfNextMonth = lastDayOfThisMonth.plusDays(1); 
    
    		// 取2017年1月第一个周一:
    		LocalDate firstMondayOf2017 = LocalDate.parse("2017-01-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
    Salin selepas log masuk

    2 Sesetengah pengendali dalam Kotlin mempunyai jenis tertentu Kini kerana projek semuanya Kotlin, ia biasanya tidak digunakan lagi Jika anda adalah projek Java lama, saya berharap pengumpulan peta penapis boleh menggunakan API aliran untuk menukar data dengan mudah.

      List<widget> widgets = new ArrayList<>();
            widgets.add(new widget(Color.RED, "Name", 1));
            int sum = widgets.stream()
                    .filter(w -> w.getColor() == Color.RED)
                    .mapToInt(w -> w.getWeight())
                    .sum();
    
        List<User> userList = Stream.
            of(arrayList).
            map(person -> new User(person.getName())).
            collect(Collectors.toList());
    
        //peek 和map类似-但是他更强大-它对每个元素执行操作并返回一个新的 Stream
        Stream.of("one", "two", "three", "four") 
        .filter(e -> e.length() > 3) 
        .peek(e -> System.out.println("Filtered value: " + e)) 
        .map(String::toUpperCase) 
        .peek(e -> System.out.println("Mapped value: " + e)) 
        .collect(Collectors.toList());
    
        //limit 返回 Stream 的前面 n 个元素;
        //skip 则是扔掉前 n 个元素
        List<String> personList2 = persons.stream()
        .map(Person::getName)
        .limit(10)
        .skip(3)
        .collect(Collectors.toList()); 
        System.out.println(personList2);
    Salin selepas log masuk
    Masalah dengan kompilasi AGP7

    Apabila menyusun projek sebelumnya, memandangkan kod keserasian kami ditulis dalam build.gradle sub-modul, modul apl akan berjaya digabungkan selepas penyusunan dan di sana tidak akan ada masalah berjalan. Walau bagaimanapun, selepas projek itu dinaik taraf kepada AGP beberapa waktu lalu, API yang ditentukan tidak boleh dijalankan Anda perlu menambah blok kod yang serasi dalam build.gradle apl modul yang sedang dijalankan. Ini direkodkan di sini.

    app build.gradle perlu ditambah

        ...
        repositories {
            maven { url &#39;https://maven.aliyun.com/nexus/content/groups/public/&#39; }
            google()
            maven { url &#39;https://jitpack.io&#39; }
            mavenCentral()
            jcenter()
        }
    
        dependencies {
            classpath &#39;com.android.tools.build:gradle:7.0.3&#39;
    
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    
            classpath &#39;com.google.gms:google-services:4.3.8&#39;
        }
       ...
    Salin selepas log masuk

    Atas ialah kandungan terperinci Cara menggunakan API versi tinggi Java dalam Android. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan