以前の mPaaS 標準ベースラインは、targetSdkVersion に最大 26 までしか対応していませんでした。ただし、10.1.68.21 以降では targetSdkVersion のサポートが追加されています。アプリで targetSdkVersion を 29 にアップグレードする必要がある場合は、「mPaaS プラグインを使用する」をご参照ください。SDK を 10.1.68.21 以降に更新し、以下の説明に従って構成を追加して、関連機能に戻ってください。
SDK と関連構成の更新については、「mPaaS のマルチ CPU アーキテクチャのサポート」をご参照ください。
targetSdkVersion 28 への対応
targetSdkVersion の変更
AAR
プロジェクトのメインモジュールにある build.gradle ファイルで、属性 targetSdkVersion を 28 に変更します。
Portal&Bundle
Portal プロジェクトのメインモジュールにある
build.gradleファイルで、属性 targetSdkVersion を 28 に変更します。Bundle プロジェクトの targetSdkVersion は変更せずにそのままにすることができますが、Portal プロジェクトの targetSdkVersion より後にすることはできません。
共通構成
AAR
プロジェクトの AndroidManifest.xml を変更し、アプリケーションノードの下に次のコードを追加します。
<uses-library android:name="org.apache.http.legacy" android:required="false"/>Portal&Bundle
Portal プロジェクトの AndroidManifest.xml を変更します。
アプリケーションノードの下に次のコードを追加します。
<uses-library android:name="org.apache.http.legacy" android:required="false"/>SDK はコードで設定するように変更されていることに注意してください。LauncherActivity から次の属性を削除する必要があります。
android:screenOrientation="portrait"
その他の構成
HTTP リクエストを許可する
デフォルトでは、Android 9.0 のネットワーク構成では HTTP リクエストが無効になっており、HTTPS リクエストのみが許可されています。 targetSdkVersion を 28 に設定すると、9.0 以降のデバイスで 9.0 のネットワーク構成が有効になります。ミニプログラムを含め、引き続き HTTP リクエストを送信する必要がある場合は、networkSecurityConfig を構成することで有効にできます。
Portal&Bundle は Portal プロジェクトであることに注意してください。プロジェクトの
res/xmlディレクトリの下に、次の内容のnetwork_security_config.xmlファイルを作成します。<?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>Portal&Bundle は Portal プロジェクトであることに注意してください。プロジェクトの
AndroidManifest.xmlの application ノードに次の属性を追加します。android:networkSecurityConfig="@xml/network_security_config"構成の詳細については、「Google 公式ドキュメント」をご参照ください。
透明な背景の Activity で画面の向きを設定するとクラッシュが発生する
この対応ポイントは、Android 8.0 のバグです。 Android 8.0 デバイスでは、アプリケーションの targetSdkVersion が 26 より大きい場合、透明な背景の Activity を開くと、画面の向きが設定されているとクラッシュが発生します。具体的なトリガー条件は次のとおりです。
Activity で使用されているテーマの
windowIsTranslucentまたはwindowIsFloatingの属性が true である。AndroidManifest.xmlにscreenOrientation属性が設定されているか、setRequestedOrientationメソッドが呼び出されている。
すべての Activity がトリガー条件を満たしているかどうかを確認する必要があります。また、カスタムスタイルに加えて、いくつかの一般的なシステムテーマも条件を満たしていることに注意してください。例:
@android:style/Theme.Translucent.NoTitleBar
@android:style/Theme.Dialog推奨される対応:
テーマが条件を満たす Activity については、
AndroidManifest.xmlのscreenOrientation属性を削除し、代わりにsetRequestedOrientationメソッドを呼び出します。対応する Activity または親クラスの
setRequestedOrientationメソッドをオーバーライドします。基本ルールとしてtry catch super.setRequestedOrientation()を使用します。@Override public void setRequestedOrientation(int requestedOrientation) { try { super.setRequestedOrientation(requestedOrientation); } catch (Exception ignore) { } }mPaaS によって提供される
BaseActivity、BaseFragmentActivity、およびBaseAppCompatActivtiyは、setRequestedOrientationメソッドを基本ルールとしてオーバーライドされました。画面の回転によって Activity に例外が発生しないようにしてください。これはクラッシュを防ぐことはできますが、Android 8.0 デバイスで向きのロックが失敗する可能性があります。たとえば、ライフサイクルを再実行すると、一部のメンバー変数が空になります。
Android 8.0 システムに関連するソースコード:

回帰テスト
完全な回帰テストには、Android 9.0 以降のデバイスを含める必要があります。透明な背景に対する Activity の画面の向き設定におけるクラッシュの問題については、Android 8.0 モデルで具体的なテストを実施してください。
回帰テストでは、使用されている場合は、次のコンポーネント機能に焦点を当てる必要があります。
コンポーネント | 検証プロジェクト |
モバイル ゲートウェイ | - 署名検証 を有効にした後、RPC 呼び出しが成功するかどうか。 - データ暗号化 を有効にした後、RPC 呼び出しが成功するかどうか。 |
スキャン | - 標準 UI でコードが正常にスキャンされるかどうか。 - 標準 UI で携帯電話のアルバムが開き、写真が撮影され、プレビューが正しく表示されるかどうか。 - カスタム UI が成功した場合は、「新しい API の一部を対応させる」必要があります。 |
統合データ ストレージ | - データベース暗号化ストレージ が正常に機能するかどうか。 - ファイル暗号化ストレージ が正常に機能するかどうか。 |
共有 | - 新浪微博または QQ での共有 が正常に機能するかどうか。 |