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

Mobile Platform as a Service:targetSdkVersion 28 への mPaaS の対応

最終更新日:Feb 06, 2026

旧バージョンの mPaaS ベースラインは、`targetSdkVersion` 26 までをサポートしています。`targetSdkVersion` 28 のサポートは、mPaaS バージョン 10.1.68.21 以降で利用可能です。アプリケーションを `targetSdkVersion` 28 にアップグレードするには、mPaaS プラグインを使用して SDK をバージョン 10.1.68.21 以降に更新してください。更新後、このドキュメントの手順に従ってコードを修正し、回帰テストを実施してください。

targetSdkVersion 28 への対応

targetSdkVersion の変更

AAR 統合方式

プロジェクトのメインモジュールの build.gradle ファイルで、`targetSdkVersion` プロパティを 28 に変更します。

Portal & Bundle 統合方式

  • Portal プロジェクトのメインモジュールの build.gradle ファイルで、`targetSdkVersion` プロパティを 28 に変更します。

  • Bundle プロジェクトの `targetSdkVersion` を変更する必要はありませんが、Portal プロジェクトの `targetSdkVersion` より高くすることはできません。

一般的な構成

AAR 統合方式

プロジェクトの AndroidManifest.xml ファイルで、`application` ノードの下に次のコードを追加します。

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

Portal & Bundle 統合方式

Portal プロジェクトの AndroidManifest.xml ファイルで、次の変更を行います。

  • `application` ノードの下に次のコードを追加します。

    <uses-library android:name="org.apache.http.legacy" android:required="false"/>
  • `LauncherActivity` から次のプロパティを削除します。SDK はこのプロパティをプログラムで設定するようになりました。

    android:screenOrientation="portrait"

その他の構成

HTTP リクエストの許可

デフォルトでは、Android 9.0 以降は HTTPS リクエストのみを許可します。`targetSdkVersion` を 28 に設定すると、Android 9.0 以降を実行しているデバイス上のアプリにこの制限が適用されます。ミニアプリ内のリクエストを含む HTTP リクエストを送信するには、networkSecurityConfig を構成して有効にする必要があります。

  • プロジェクトの res/xml ディレクトリに、次の内容で network_security_config.xml ファイルを作成します。Portal & Bundle 統合方式の場合は、このファイルを 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>
  • プロジェクトの AndroidManifest.xml ファイルで、`application` ノードに次のプロパティを追加します。Portal & Bundle 統合方式の場合は、Portal プロジェクト内のファイルを変更します。

    android:networkSecurityConfig="@xml/network_security_config"

詳細については、Google の公式ドキュメントをご参照ください。

背景が透明なアクティビティの画面の向きを設定する際のクラッシュ

このセクションでは、Android 8.0 のシステムバグについて説明します。Android 8.0 を実行しているデバイスでは、`targetSdkVersion` が 26 より高く、背景が透明で画面の向きが固定されているアクティビティを開こうとすると、アプリがクラッシュします。このクラッシュをトリガーする特定の条件は次のとおりです。

  • アクティビティで使用されるテーマの windowIsTranslucent または windowIsFloating 属性が true である。

  • AndroidManifest.xmlscreenOrientation 属性が設定されているか、setRequestedOrientation メソッドが呼び出されている。

すべてのアクティビティをチェックして、これらの条件を満たしているかどうかを確認してください。カスタムスタイルに加えて、次のような一般的なシステムテーマも条件を満たすことに注意してください。

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

推奨されるソリューション:

  1. テーマが条件を満たすアクティビティについては、AndroidManifest.xmlscreenOrientation 属性を削除し、代わりに setRequestedOrientation メソッドを呼び出します。

  2. 対応するアクティビティまたは親クラスで setRequestedOrientation メソッドをオーバーライドし、try catch super.setRequestedOrientation() を基本ルールとします。

     @Override
     public void setRequestedOrientation(int requestedOrientation) {
         try {
             super.setRequestedOrientation(requestedOrientation);
         } catch (Exception ignore) {
    
         }
     }
  3. mPaaS が提供する BaseActivityBaseFragmentActivity、およびBaseAppCompatActivtiy は、setRequestedOrientation メソッドを基本ルールとして上書きされました。

  4. この回避策によりクラッシュは防止されます。ただし、Android 8.0 デバイスでは画面の向きのロックが失敗する可能性があります。画面が回転したときに、ライフサイクルの再起動によってメンバー変数が null になるなどの例外がアクティビティで発生しないことを確認してください。

関連する Android 8.0 のシステムソースコード:

android 8.0 bug

回帰テスト

完全な回帰テストには、Android 9.0 以降を実行しているデバイスを含める必要があります。透明なアクティビティに関連するクラッシュの問題については、Android 8.0 デバイスで特定のテストを実行する必要があります。

回帰テスト中は、以下のコンポーネント機能を使用している場合、それらに特に注意してください。

コンポーネント

検証項目

モバイルゲートウェイ

  • 署名検証を有効にした後、RPC 呼び出しが成功するかどうかを確認します。

  • データ暗号化を有効にした後、RPC 呼び出しが成功するかどうかを確認します。

スキャン

  • 標準 UI でのスキャンが成功するかどうかを確認します。

  • 標準 UI で、スマートフォンのフォトアルバムを開き、写真を撮り、プレビューする操作が正しく機能するかどうかを確認します。

  • カスタム UI でのスキャンが成功するかどうかを確認します。カスタム UI を使用する場合は、いくつかの新しいインターフェイスに対応する必要があります。

統合ストレージ

共有

Sina Weibo と QQ への共有が成功するかどうかを確認します。