All Products
Search
Document Center

Mobile Platform as a Service:Adaptasi mPaaS untuk targetSdkVersion 28

Last Updated:Feb 06, 2026

Baseline mPaaS versi lama mendukung targetSdkVersion hingga 26. Dukungan untuk targetSdkVersion 28 tersedia mulai dari versi mPaaS 10.1.68.21. Untuk meng-upgrade aplikasi Anda ke targetSdkVersion 28, gunakan mPaaS plugin guna memperbarui SDK ke versi 10.1.68.21 atau yang lebih baru. Setelah pembaruan, ikuti petunjuk dalam dokumen ini untuk menyesuaikan kode dan melakukan pengujian regresi.

Adaptasi untuk targetSdkVersion 28

Ubah targetSdkVersion

Metode integrasi AAR

Pada file build.gradle modul utama proyek, ubah properti `targetSdkVersion` menjadi 28.

Metode integrasi Portal & Bundle

  • Pada file build.gradle modul utama proyek Portal, ubah properti `targetSdkVersion` menjadi 28.

  • targetSdkVersion pada proyek Bundle tidak perlu diubah, tetapi nilainya tidak boleh lebih tinggi daripada targetSdkVersion proyek Portal.

Konfigurasi umum

Metode integrasi AAR

Pada file AndroidManifest.xml proyek, tambahkan kode berikut di bawah node `application`:

<uses-library android:name="org.apache.http.legacy" android:required="false"/>

Metode integrasi Portal & Bundle

Pada file AndroidManifest.xml proyek Portal, lakukan perubahan berikut:

  • Tambahkan kode berikut di bawah node application:

    <uses-library android:name="org.apache.http.legacy" android:required="false"/>
  • Hapus properti berikut dari LauncherActivity. SDK kini mengatur properti ini secara programatik.

    android:screenOrientation="portrait"

Konfigurasi lainnya

Izinkan permintaan HTTP

Secara default, Android 9.0 dan versi yang lebih baru hanya mengizinkan Permintaan HTTPS. Menyetel targetSdkVersion ke 28 menerapkan pembatasan ini pada aplikasi Anda di perangkat yang menjalankan Android 9.0 atau lebih baru. Untuk mengirim permintaan HTTP, termasuk yang ada di miniapp, Anda harus mengaktifkannya dengan mengonfigurasi networkSecurityConfig.

  • Di direktori res/xml proyek Anda, buat file network_security_config.xml dengan konten berikut. Untuk metode integrasi Portal & Bundle, buat file ini di proyek Portal.

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
      <base-config cleartextTrafficPermitted="true">
          <trust-anchors>
              <certificates src="system" />
          </trust-anchors>
      </base-config>
    </network-security-config>
  • Pada file AndroidManifest.xml proyek Anda, tambahkan properti berikut ke node `application`. Untuk metode integrasi Portal & Bundle, lakukan perubahan pada file di proyek Portal.

    android:networkSecurityConfig="@xml/network_security_config"

Untuk informasi selengkapnya, lihat dokumentasi resmi Google.

Crash saat menyetel orientasi layar untuk activity dengan latar belakang transparan

Bagian ini membahas bug sistem di Android 8.0. Pada perangkat yang menjalankan Android 8.0, aplikasi akan crash jika targetSdkVersion-nya lebih tinggi dari 26 dan mencoba membuka activity yang memiliki latar belakang transparan sekaligus orientasi layar tetap. Kondisi spesifik yang memicu crash ini adalah:

  • Atribut windowIsTranslucent atau windowIsFloating dari tema yang digunakan oleh Activity bernilai true.

  • Atribut screenOrientation disetel di AndroidManifest.xml, atau metode setRequestedOrientation dipanggil.

Periksa semua activity untuk melihat apakah memenuhi kondisi tersebut. Selain gaya (style) kustom Anda, perhatikan bahwa beberapa tema sistem umum juga memenuhi kondisi ini, seperti:

@android:style/Theme.Translucent.NoTitleBar
@android:style/Theme.Dialog

Solusi yang direkomendasikan:

  1. Untuk Activity yang temanya memenuhi kondisi tersebut, hapus atribut screenOrientation di AndroidManifest.xml dan panggil metode setRequestedOrientation sebagai gantinya.

  2. Override metode setRequestedOrientation di Activity terkait atau kelas induknya, dengan aturan dasar try catch super.setRequestedOrientation():

     @Override
     public void setRequestedOrientation(int requestedOrientation) {
         try {
             super.setRequestedOrientation(requestedOrientation);
         } catch (Exception ignore) {
    
         }
     }
  3. BaseActivity, BaseFragmentActivity, dan BaseAppCompatActivtiy yang disediakan oleh mPaaS telah di-override, dengan metode setRequestedOrientation sebagai aturan dasar.

  4. Workaround ini mencegah crash. Namun, penguncian orientasi layar mungkin tetap gagal pada perangkat Android 8.0. Pastikan Activity Anda tidak menyebabkan exception saat layar berputar, seperti restart siklus hidup yang mengakibatkan variabel anggota bernilai null.

Kode sumber sistem Android 8.0 terkait:

android 8.0 bug

Pengujian regresi

Pengujian regresi lengkap Anda harus mencakup perangkat yang menjalankan Android 9.0 atau lebih baru. Untuk masalah crash yang melibatkan activity transparan, Anda harus melakukan pengujian khusus pada perangkat Android 8.0.

Selama pengujian regresi, perhatikan dengan cermat fitur komponen berikut jika Anda menggunakannya:

Komponen

Item validasi

Mobile Gateway

  • Periksa apakah panggilan RPC berhasil setelah Anda mengaktifkan validasi signature.

  • Periksa apakah panggilan RPC berhasil setelah Anda mengaktifkan enkripsi data.

Scan

  • Periksa apakah pemindaian dengan UI standar berhasil.

  • Periksa apakah membuka album foto ponsel, mengambil foto, dan menampilkannya berfungsi dengan benar menggunakan UI standar.

  • Periksa apakah pemindaian dengan UI kustom berhasil. Jika Anda menggunakan UI kustom, Anda harus menyesuaikan beberapa antarmuka baru.

Unified Storage

Share

Periksa apakah berbagi ke Sina Weibo dan QQ berhasil.