全部产品
Search
文档中心

Mobile Platform as a Service:FAQ

更新时间:Feb 04, 2026

Tinjau daftar pertanyaan yang sering diajukan berikut ini. Klik pertanyaan untuk melihat jawabannya.

Tidak ada koneksi jaringan saat kompilasi

Jika Anda tidak memiliki koneksi jaringan saat mengompilasi file, proses kompilasi mungkin gagal. Ikuti langkah-langkah berikut untuk memastikan lingkungan kompilasi Anda terhubung ke jaringan.

  1. Pastikan Anda terhubung ke Internet.

  2. Pastikan Anda tidak terhubung ke proxy jaringan, seperti proxy browser atau perangkat lunak proxy pihak ketiga.

  3. Pastikan tidak ada proxy IDE yang diatur.

    idea 代理

  4. Pada file gradle.properties, pastikan tidak ada proxy Gradle yang diatur. Artinya, properti systemProp.http.proxyHost dan systemProp.http.proxyPort tidak diatur. Jika sudah diatur, hapus properti tersebut.gradle代理

Kompilasi program gagal

Jika program gagal dikompilasi, ikuti langkah-langkah berikut untuk memecahkan masalah dan menyelesaikannya.

  1. Ikuti langkah-langkah dalam Tidak ada koneksi jaringan saat kompilasi untuk memastikan lingkungan kompilasi Anda memiliki koneksi jaringan yang stabil.

  2. Periksa log eksekusi Gradle untuk memastikan dependensi baru valid.

  3. Verifikasi bahwa parameter group, artifact, dan version (GAV) dari dependensi tersebut benar.

    // Referensi paket debug
    group:artifact:version:raw@jar
    bundle "com.app.xxxxx.xxxx:test-build:1.0-SNAPSHOT:raw@jar"
    // Referensi paket release
    group:artifact:version@jar
    bundle "com.app.xxxxx.xxxx:test-build:1.0-SNAPSHOT@jar"
    manifest "com.app.xxxxx.xxxx:test-build:1.0-SNAPSHOT:AndroidManifest@xml"
  4. Pada antarmuka baris perintah sistem Anda, jalankan perintah berikut untuk mengekspor log eksekusi Gradle:

    // Sebelum menjalankan perintah, pastikan properti productflavor tidak didefinisikan. Jika tidak, perintah akan gagal.
    // Perintah berikut mengekspor log eksekusi ke file log.txt.
    gradle buildDebug --info --debug -Plog=true > log.txt
  5. Lihat file log yang diekspor. Catatan seperti berikut menunjukkan bahwa dependensi baru tidak tersedia.

    Caused by: org.gradle.internal.resolve.ArtifactNotFoundException: Could not find nebulacore-build-AndroidManifest.xml (com.alipay.android.phone.wallet:nebulacore-build:1.6.0.171211174825).
    Searched in the following locations:
    http://mvn.cloud.alipay.com/nexus/content/repositories/releases/com/alipay/android/phone/wallet/nebulacore-build/1.6.0.171211174825/nebulacore-build-1.6.0.171211174825-AndroidManifest.xml
         at org.gradle.internal.resolve.result.DefaultBuildableArtifactResolveResult.notFound(DefaultBuildableArtifactResolveResult.java:38)
         at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$LocateInCacheRepositoryAccess.resolveArtifactFromCache(CachingModuleComponentRepository.java:260)
  6. Akses tautan HTTP dalam log (misalnya baris ketiga pada log dari langkah sebelumnya) dan login untuk melihat Repositori Maven.

    Catatan

    Anda dapat menemukan username dan password yang diperlukan untuk login di file build.gradle.

  7. Jalankan perintah berikut untuk purge cache gradle.

    gradle clean --refresh-dependencies
  8. Jika Repositori Maven berisi dependensi tersebut, hapus cache Gradle dari direktori pribadi Anda lalu kompilasi ulang. Untuk menghapus cache Gradle:

    • Pada sistem macOS, Linux, atau Unix, jalankan perintah berikut.

      cd ~
      cd .gradle
      cd caches
      rm -rf modules-2
    • Pada Windows, buka path default C:\Users\{username}\.gradle\caches dan hapus folder modules-2.

Perlambatan selama kompilasi

Jika proses kompilasi sangat lambat (misalnya, memakan waktu lebih dari 20 menit), Anda dapat mengikuti langkah-langkah berikut untuk meningkatkan efisiensi kompilasi.

  1. Ikuti langkah-langkah dalam bagian sebelumnya untuk memastikan lingkungan kompilasi Anda memiliki koneksi jaringan yang stabil.

  2. Pastikan firewall dinonaktifkan.

  3. Pastikan tidak ada proxy jaringan yang dikonfigurasi untuk kompiler IntelliJ IDEA.

  4. Dalam kode Anda, konfigurasikan Repositori Maven terlebih dahulu. Contohnya, kode berikut mengonfigurasi Repositori Maven Alibaba Cloud.

     apply plugin: 'maven'
     buildscript {
         repositories {
             mavenLocal()
    
     // Pertama, muat gambar Maven
             maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
    
             maven {
                 credentials {
                     username "Use a known user"
                     password "Use a known password"
                 }
                 url "http://mvn.cloud.alipay.com/nexus/content/repositories/releases/"
             }
         }
         dependencies {
             classpath 'com.android.tools.build:gradle:2.1.3'
             classpath 'com.alipay.android:android-gradle-plugin:2.1.3.3.3'
             classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
         }
     }
     allprojects {
         repositories {
             flatDir {
                 dirs 'libs'
             }
             mavenLocal()
             maven {
                 credentials {
                     username "xxxxxxxxx"
                     password "xxxxxxx"
                 }
                 url "http://mvn.cloud.alipay.com/nexus/content/repositories/releases/"
             }
             maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
         }
     }

Kompilasi gagal dengan NullPointerException

空指针异常Saat menghubungkan ke Apsara Stack, kompilasi mungkin gagal dengan NullPointerException setelah Anda mengunduh file konfigurasi dan menghubungkan ke mPaaS. Jika hal ini terjadi, periksa file konfigurasi tersebut. Pastikan semua 13 bidang wajib tersedia dan nama bidang sesuai dengan yang ada di file yang diunduh dari public cloud.

Cara melakukan debug aplikasi

Anda perlu melakukan debug kode selama pengembangan. Topik ini menjelaskan dua metode debugging.

  • Jalankan aplikasi dalam mode debug

  • Debug aplikasi setelah aplikasi berjalan

Jalankan aplikasi dalam mode debug

  • Skenario

    Anda ingin melakukan debug kode awal saat aplikasi dimulai, seperti kode inisialisasi selama application init.

  • Prosedur

  1. Jalankan perintah adb shell am start -W -S -D <application_package_name>/<first_activity_class_name>. Misalnya, nama paket mPaaS Demo adalah com.mpaas.demo, dan nama kelas aktivitas pertama adalah com.alipay.mobile.quinox.LauncherActivity. Anda dapat menjalankan perintah adb shell am start -W -S -D com.mpaas.demo/com.alipay.mobile.quinox.LauncherActivity untuk menjalankan aplikasi dalam mode debug. Nama kelas aktivitas pertama ditampilkan pada gambar berikut.

    img

  2. Setelah menjalankan perintah, dialog berikut muncul di ponsel Anda.

  3. Atur breakpoint pada baris kode yang ingin Anda debug, lalu attach ke proses aplikasi, seperti yang ditunjukkan pada gambar.

    修改2.jpg

Debug aplikasi setelah aplikasi berjalan

  • Skenario

    Anda perlu melakukan debug setelah suatu event dipicu, seperti menekan tombol atau berpindah ke halaman tertentu.

  • Prosedur

    Setelah aplikasi berjalan, klik tombol Attach to process (process) untuk memulai debugging.

Catatan penggunaan MultiDex pada proyek mPaaS Portal dan Bundle

Kami tidak merekomendasikan penggunaan MultiDex untuk proyek Portal dan Bundle. Satu-satunya pengecualian adalah jika proyek portal tunggal memerlukan multiDexEnabled true. Jika ukuran Bundle terlalu besar, lakukan pemisahan bundle alih-alih mengaktifkan dukungan MultiDex untuknya.

Cara membersihkan cache Gradle

Buka antarmuka pengaturan untuk plugin Gradle dan klik tombol Clean Cache untuk menghapus semua data cache plugin Gradle.

插件设置界面

Cara upgrade ke plugin Gradle terbaru

Catatan

Bagian ini hanya berlaku untuk seri baseline 10.1.68. Untuk informasi lebih lanjut tentang versi baseline ini, lihat Pengenalan baseline dan Catatan rilis seri baseline 10.1.68.

Plugin Android Gradle resmi dari Google adalah versi 3.5.x.

mPaaS juga menyediakan plugin kompatibel versi 3.5.x, yang mendukung API Google Android Gradle Plugin 3.5.3 dan Gradle 6.2.

Perubahan pada metode impor

  1. Anda hanya perlu menambahkan dependensi berikut untuk mengimpor plugin mPaaS. Anda tidak perlu mengimpor plugin Android Gradle resmi karena secara otomatis diimpor melalui dependensi transitif.

    dependencies {
    classpath 'com.alipay.android:android-gradle-plugin:3.5.18'
    }
  2. Versi Gradle Wrapper harus 5.6 atau lebih baru. Kami merekomendasikan menggunakan versi 6.2.

Perubahan pada penggunaan

  • Anda tidak perlu lagi menggunakan apply plugin:'com.android.application'.

    • Jika Anda memiliki proyek portal, cukup gunakan apply plugin:'com.alipay.portal'.

    • Jika Anda memiliki proyek bundle, hapus apply plugin:'com.android.application', dan gunakan hanya apply plugin:'com.alipay.bundle'.

    • Jika Anda memiliki proyek library, hapus apply plugin:'com.alipay.library', dan gunakan hanya apply plugin:'com.android.library'.

  • Jika Anda menggunakan versi stabil terbaru Android Studio 3.5 atau lebih baru, Anda perlu menambahkan android.buildOnlyTargetAbi=false ke file gradle.properties.

  • Karena Komponen Security Guard mPaaS tidak mendukung penandatanganan V2, Anda harus menonaktifkan penandatanganan V2 untuk melakukan debug dan menginstal APK menggunakan Android Studio. Jika Anda membangun dari command line dan minSdkVersion Anda 24 atau lebih tinggi, Anda juga perlu menonaktifkan penandatanganan V2. Untuk menonaktifkan penandatanganan V2:

    v2SigningEnabled false

Penting

Setelah membersihkan cache, pantau dan pastikan program mini dan halaman H5 berfungsi sebagaimana mestinya.

Tag input file tidak dapat membuka kamera pada Huawei EMUI 10

Karena implementasi URI pada Huawei EMUI 10 berbeda dari standar Android, Anda mungkin tidak dapat membuka kamera pada Huawei EMUI 10. Ikuti langkah-langkah berikut untuk mengatasi masalah ini.

1. Upgrade baseline

  • Jika Anda menggunakan baseline seri 32, upgrade ke 10.1.32.18 atau lebih baru.

  • Jika Anda menggunakan baseline seri 60, upgrade ke 10.1.60.9 atau lebih baru.

  • Jika Anda menggunakan baseline seri 68, upgrade ke 10.1.68-beta.3 atau lebih baru.

2. Konfigurasi FileProvider

Anda dapat menggunakan kembali FileProvider yang sudah ada atau membuat yang baru.

  1. Buat kelas Java baru yang mewarisi FileProvider.

    import android.support.v4.content.FileProvider;
    public class NebulaDemoFileProvider extends FileProvider {
    }
  2. Di res/xml, buat file baru bernama nebula_fileprovider_path.xml.

    <?xml version="1.0" encoding="utf-8"?>
    <paths xmlns:android="http://schemas.android.com/apk/res/android">
     <external-path name="external" path="."/>
    </paths>
  3. Tambahkan konfigurasi ke AndroidManifest.

    <provider
     android:name="com.mpaas.demo.nebula.NebulaDemoFileProvider"
     android:authorities="com.mpaas.demo.nebula.provider"
     android:exported="false"
     android:grantUriPermissions="true">
     <meta-data
         android:name="android.support.FILE_PROVIDER_PATHS"
         android:resource="@xml/nebula_fileprovider_path" />
    </provider>
    Catatan

    Nilai android:authorities, com.mpaas.demo.nebula.provider, adalah contoh dari demo mPaaS. Anda harus mengatur nilai ini untuk aplikasi Anda sendiri dan tidak boleh menggunakan com.mpaas.demo.nebula.provider untuk mencegah konflik dengan aplikasi mPaaS lainnya.

3. Implementasikan H5NebulaFileProvider

  1. Buat kelas Java baru yang mengimplementasikan H5NebulaFileProvider. Implementasikan metode getUriForFile. Dalam metode ini, panggil FileProvider yang telah Anda implementasikan di atas untuk menghasilkan URI.

    public class H5NebulaFileProviderImpl implements H5NebulaFileProvider {
     private static final String TAG = "H5FileProviderImpl";
    
     @Override
     public Uri getUriForFile(File file) {
         try {
             return getUriForFileImpl(file);
         } catch (Exception e) {
             H5Log.e(TAG, e);
         }
         return null;
     }
    
     private static Uri getUriForFileImpl(File file) {
         Uri fileUri = null;
         if (Build.VERSION.SDK_INT >= 24) {
             fileUri = NebulaDemoFileProvider.getUriForFile(LauncherApplicationAgent.getInstance().getApplicationContext(), "com.mpaas.demo.nebula.provider", file);
         } else {
             fileUri = Uri.fromFile(file);
         }
         return fileUri;
     }
    }
  2. Daftarkan H5NebulaFileProvider. Setelah inisialisasi mPaaS selesai dan sebelum memulai paket offline, daftarkan H5NebulaFileProvider. Pendaftaran bersifat global dan hanya perlu dilakukan sekali.

    H5Utils.setProvider(H5NebulaFileProvider.class.getName(), new H5NebulaFileProviderImpl());

Cara menggunakan atau menambahkan dependensi mPaaS dalam Library

Saat menggunakan framework mPaaS, terkadang Anda perlu menggunakan kembali modul. Untuk melakukannya, tambahkan modul sebagai dependensi. Topik ini menggunakan modul Komponen Scan mPaaS sebagai contoh.

Prasyarat

Anda telah menghubungkan proyek Anda ke mPaaS menggunakan metode native AAR.

Prosedur

  1. Dalam proyek Android Anda, buat modul Android Library bernama scan.

  2. Dalam file build.gradle modul scan yang baru, tambahkan api platform("com.mpaas.android:$mpaas_artifact:$mpaas_baseline"). Berikut contohnya:

     dependencies {
         ……
         // Ini harus ditambahkan saat menggunakan fitur komponen mPaaS dalam modul.
         api platform("com.mpaas.android:$mpaas_artifact:$mpaas_baseline")
    
         ……
      }
  3. Gunakan plugin mPaaS di Android Studio untuk menginstal Komponen Scan pada modul scan. Jalur menu: mPaaS > Native AAR Connection > Configure/Update Component > Start Configuration. Setelah instalasi, Komponen Scan akan dimuat secara otomatis.

  4. Konfigurasikan proyek aplikasi utama.

     plugins {
         id 'com.android.application'
    
         ......    
         // Anda harus menambahkan baseline.config (baseline) ke file build.gradle di bawah app.
         id 'com.alipay.apollo.baseline.config'
     }
  5. Tambahkan modul scan sebagai dependensi di tempat Anda perlu menggunakan Komponen Scan.

     dependencies {
         api platform("com.mpaas.android:$mpaas_artifact:$mpaas_baseline")
    
         ....
         api project(':scan')// Komponen Scan
     }

Cara mengatasi error runtime 608 atau error native libsgmain

Jika terjadi exception saat runtime, cari kata kunci SecException dalam log operasional Android Studio. Jika Anda menemukan kode kesalahan 608 atau error native libsgmain, ikuti langkah-langkah berikut untuk memecahkan masalah.

  1. Periksa apakah file res/drawable/yw_1222.jpg ada.

    • Periksa apakah file konfigurasi berisi Base64.

    • Periksa apakah plugin Gradle baseline.update atau baseline.config diterapkan.2

  2. Periksa apakah folder META-INF berisi tiga file berikut: CERT.SF, MANIFEST.MF, dan CERT.RSA.

    • Dalam app/build.gradle, aktifkan v1SignEnabled.

    • Periksa apakah file build.gradle di direktori root proyek berisi apply plugin: 'com.alipay.apollo.optimize'.3

Jika semua pemeriksaan ini berhasil, kemungkinan besar masalahnya terletak pada paket APK bertanda tangan yang diunggah ke Konsol, seperti kesalahan signature. Anda harus mengunggah ulang paket APK tersebut.