すべてのプロダクト
Search
ドキュメントセンター

Mobile Platform as a Service:よくある質問

最終更新日:Feb 04, 2026

以下のよくある質問のリストをご確認ください。質問をクリックすると、回答が表示されます。

コンパイル時のネットワーク接続なし

ファイルのコンパイル時にネットワーク接続がない場合、コンパイルが失敗することがあります。次の手順に従って、コンパイル環境がネットワークに接続されていることを確認してください。

  1. インターネットに接続されていることを確認します。

  2. ブラウザのプロキシやサードパーティのプロキシソフトウェアなど、ネットワークプロキシに接続されていないことを確認します。

  3. IDE プロキシが設定されていないことを確認します。

    idea 代理

  4. gradle.properties ファイルで、Gradle プロキシが設定されていないことを確認します。これは、systemProp.http.proxyHost および systemProp.http.proxyPort プロパティが設定されていないことを意味します。設定されている場合は、削除してください。gradle代理

プログラムのコンパイル失敗

プログラムのコンパイルに失敗した場合は、次の手順に従ってトラブルシューティングを行い、問題を解決してください。

  1. コンパイル時のネットワーク接続なし」の手順に従って、コンパイル環境が安定したネットワークに接続されていることを確認します。

  2. Gradle の実行ログをチェックして、新しい依存関係が有効であることを確認します。

  3. 依存関係の groupartifactversion (GAV) パラメーターが正しいことを確認します。

    // デバッグパッケージを参照
    group:artifact:version:raw@jar
    bundle "com.app.xxxxx.xxxx:test-build:1.0-SNAPSHOT:raw@jar"
    // リリースパッケージを参照
    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. システムのコマンドラインインターフェイスで、次のコマンドを実行して Gradle の実行ログをエクスポートします。

    // コマンドを実行する前に、productflavor プロパティが定義されていないことを確認してください。定義されている場合、コマンドは失敗します。
    // 次のコマンドは、実行ログを log.txt ファイルにエクスポートします。
    gradle buildDebug --info --debug -Plog=true > log.txt
  5. エクスポートされたログファイルを表示します。以下のようなレコードは、新しい依存関係が存在しないことを示しています。

    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. ログ内の HTTP リンク (前のステップのログの 3 行目など) にアクセスし、ログインして Maven リポジトリを表示します。

    説明

    ログインに必要なユーザー名とパスワードは、build.gradle ファイルに記載されています。

  7. 次のコマンドを実行して、gradle キャッシュをパージします。

    gradle clean --refresh-dependencies
  8. Maven リポジトリに依存関係が含まれている場合は、個人ディレクトリから Gradle キャッシュを削除してから再コンパイルします。Gradle キャッシュを削除するには:

    • macOS、Linux、または UNIX システムでは、次のコマンドを実行します。

      cd ~
      cd .gradle
      cd caches
      rm -rf modules-2
    • Windows では、デフォルトパス C:\Users\{username}\.gradle\caches に移動し、modules-2 フォルダを削除します。

コンパイル中のカクつき

コンパイルプロセスが異常に遅い場合 (たとえば、20 分以上かかる場合)、次の手順に従ってコンパイル効率を向上させることができます。

  1. 前のセクション」の手順に従って、コンパイル環境が安定したネットワークに接続されていることを確認します。

  2. ファイアウォールが無効になっていることを確認します。

  3. IntelliJ IDEA コンパイラにネットワークプロキシが設定されていないことを確認します。

  4. コード内で、Maven リポジトリを事前に設定します。たとえば、次のコードは Alibaba Cloud Maven リポジトリを設定します。

     apply plugin: 'maven'
     buildscript {
         repositories {
             mavenLocal()
    
     // まず、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/'}
         }
     }

NullPointerException によるコンパイル失敗

空指针异常Apsara Stack に接続する際、設定ファイルをダウンロードして mPaaS に接続した後に、NullPointerException でコンパイルが失敗することがあります。この場合、設定ファイルを検査してください。13 個の必須フィールドがすべて存在し、フィールド名がパブリッククラウドからダウンロードしたファイルのものと一致していることを確認してください。

アプリケーションのデバッグ方法

開発中にコードをデバッグする必要があります。このトピックでは、2 つのデバッグ方法について説明します。

  • デバッグモードでアプリケーションを起動する

  • 実行中のアプリケーションをデバッグする

デバッグモードでアプリケーションを起動する

  • シナリオ

    application init 中の初期化コードなど、アプリケーション起動時の初期コードをデバッグしたい場合。

  • 手順

  1. コマンド adb shell am start -W -S -D <application_package_name>/<first_activity_class_name> を実行します。たとえば、mPaaS Demo のパッケージ名は com.mpaas.demo で、最初のアクティビティクラス名は com.alipay.mobile.quinox.LauncherActivity です。コマンド adb shell am start -W -S -D com.mpaas.demo/com.alipay.mobile.quinox.LauncherActivity を実行して、アプリケーションをデバッグモードで起動できます。最初のアクティビティクラス名は、次の図に示されています。

    img

  2. コマンドを実行すると、携帯電話に次のダイアログボックスが表示されます。

  3. デバッグしたいコード行にブレークポイントを設定し、図に示すようにアプリケーションのプロセスにアタッチします。

    修改2.jpg

実行中のアプリケーションをデバッグする

  • シナリオ

    ボタンのクリックやページへのナビゲーションなど、イベントがトリガーされた後にデバッグする必要がある場合。

  • 手順

    アプリケーションの実行後、[Attach to process] (process) ボタンをクリックしてデバッグを開始します。

mPaaS Portal および Bundle プロジェクトでの MultiDex の使用に関する注意事項

Portal および Bundle プロジェクトで MultiDex を使用することは推奨されません。唯一の例外は、単一の Portal プロジェクトで multiDexEnabled true が必要な場合です。Bundle が大きすぎる場合は、MultiDex サポートを有効にするのではなく、バンドルを分割してください。

Gradle キャッシュのクリア方法

Gradle プラグインの設定インターフェイスを開き、[Clean Cache] ボタンをクリックして、Gradle プラグインのすべてのキャッシュデータを削除します。

插件设置界面

最新の Gradle プラグインへのアップグレード方法

説明

このセクションは、10.1.68 ベースラインシリーズにのみ適用されます。このベースラインバージョンの詳細については、「ベースラインの概要」および「10.1.68 ベースラインシリーズのリリースノート」をご参照ください。

Google の公式 Android Gradle Plugin はバージョン 3.5.x です。

mPaaS は、バージョン 3.5.x の互換プラグインも提供しており、Google Android Gradle Plugin 3.5.3 および Gradle 6.2 の API をサポートしています。

インポート方法の変更

  1. mPaaS プラグインをインポートするには、次の依存関係を追加するだけで済みます。公式の Android Gradle Plugin は、推移的な依存関係により自動的にインポートされるため、インポートする必要はありません。

    dependencies {
    classpath 'com.alipay.android:android-gradle-plugin:3.5.18'
    }
  2. Gradle Wrapper のバージョンは 5.6 以降である必要があります。バージョン 6.2 の使用を推奨します。

使用方法の変更

  • apply plugin:'com.android.application' を使用する必要はなくなりました。

    • portal プロジェクトがある場合は、apply plugin:'com.alipay.portal' を使用するだけで済みます。

    • bundle プロジェクトがある場合は、apply plugin:'com.android.application' を削除し、apply plugin:'com.alipay.bundle' のみを使用します。

    • library プロジェクトがある場合は、apply plugin:'com.alipay.library' を削除し、apply plugin:'com.android.library' のみを使用します。

  • Android Studio 3.5 以降の最新の安定版を使用している場合は、gradle.properties ファイルに android.buildOnlyTargetAbi=false を追加する必要があります。

  • mPaaS Security Guard コンポーネントは V2 署名をサポートしていないため、Android Studio を使用して APK をデバッグおよびインストールするには、V2 署名を無効にする必要があります。コマンドラインからビルドし、`minSdkVersion` が 24 以上の場合は、V2 署名を無効にする必要もあります。V2 署名を無効にするには:

    v2SigningEnabled false

重要

キャッシュをクリアした後、ミニアプリと H5 ページが期待どおりに動作することをモニターし、確認してください。

Huawei EMUI 10 で input file タグがカメラを開けない問題

Huawei EMUI 10 の URI 実装は標準の Android と異なるため、Huawei EMUI 10 でカメラを開けない場合があります。この問題を解決するには、次の手順に従ってください。

1. ベースラインのアップグレード

  • 32 シリーズのベースラインを使用している場合は、10.1.32.18 以降にアップグレードしてください。

  • 60 シリーズのベースラインを使用している場合は、10.1.60.9 以降にアップグレードしてください。

  • 68 シリーズのベースラインを使用している場合は、10.1.68-beta.3 以降にアップグレードしてください。

2. FileProvider の設定

既存の FileProvider を再利用するか、新しいものを作成できます。

  1. FileProvider を継承する新しい Java クラスを作成します。

    import android.support.v4.content.FileProvider;
    public class NebulaDemoFileProvider extends FileProvider {
    }
  2. res/xml に、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. 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>
    説明

    android:authorities の値である com.mpaas.demo.nebula.provider は、mPaaS デモのサンプルです。この値はご自身のアプリケーション用に設定する必要があり、他の mPaaS アプリケーションとの競合を避けるために com.mpaas.demo.nebula.provider を使用してはなりません。

3. H5NebulaFileProvider の実装

  1. H5NebulaFileProvider を実装する新しい Java クラスを作成します。getUriForFile メソッドを実装します。このメソッドでは、上記で実装した FileProvider を呼び出して 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. H5NebulaFileProvider を登録します。mPaaS の初期化が完了し、オフラインパッケージを開始する前に、H5NebulaFileProvider を登録します。登録はグローバルであり、一度だけ実行する必要があります。

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

Library で mPaaS を使用または依存する方法

mPaaS フレームワークを使用する場合、モジュールを再利用する必要がある場合があります。これを行うには、モジュールを依存関係として追加します。このトピックでは、mPaaS スキャンコンポーネントのモジュールを例として使用します。

前提条件

ネイティブ AAR 方式を使用してプロジェクトを mPaaS に接続済みであること。

手順

  1. Android プロジェクトで、scan という名前の Android Library モジュールを作成します。

  2. 新しい scan モジュールの build.gradle ファイルに、api platform("com.mpaas.android:$mpaas_artifact:$mpaas_baseline") を追加します。以下に例を示します。

     dependencies {
         ……
         // モジュールで mPaaS コンポーネント機能を使用する場合は、これを追加する必要があります。
         api platform("com.mpaas.android:$mpaas_artifact:$mpaas_baseline")
    
         ……
      }
  3. Android Studio の mPaaS プラグインを使用して、scan モジュールにスキャンコンポーネントをインストールします。メニューパスは、[mPaaS] > [Native AAR Connection] > [Configure/Update Component] > [Start Configuration] です。インストール後、スキャンコンポーネントは自動的にロードされます。

  4. メインの app プロジェクトを設定します。

     plugins {
         id 'com.android.application'
    
         ......    
         // app の下の build.gradle ファイルに baseline.config (ベースライン) を追加する必要があります。
         id 'com.alipay.apollo.baseline.config'
     }
  5. スキャンコンポーネントを使用する必要がある場所に、scan モジュールを依存関係として追加します。

     dependencies {
         api platform("com.mpaas.android:$mpaas_artifact:$mpaas_baseline")
    
         ....
         api project(':scan')// スキャンコンポーネント
     }

実行時エラー 608 または libsgmain ネイティブエラーの解決方法

実行時に例外が発生した場合は、Android Studio の操作ログでキーワード SecException を検索します。エラーコード 608 または libsgmain ネイティブエラーが見つかった場合は、次の手順に従ってトラブルシューティングを行ってください。

  1. res/drawable/yw_1222.jpg ファイルが存在するかどうかを確認します。

    • 設定ファイルに Base64 が含まれているかどうかを確認します。

    • Gradle プラグイン baseline.update または baseline.config が適用されているかどうかを確認します。2

  2. META-INF フォルダに CERT.SFMANIFEST.MFCERT.RSA の 3 つのファイルが含まれているかどうかを確認します。

    • app/build.gradle で、v1SignEnabled を有効にします。

    • プロジェクトのルートディレクトリにある build.gradle ファイルに apply plugin: 'com.alipay.apollo.optimize' が含まれているかどうかを確認します。3

これらのチェックがすべて合格した場合、問題はコンソールにアップロードされた署名付き APK パッケージ (署名エラーなど) にある可能性があります。APK パッケージを再度アップロードする必要があります。