Skip to main content

 

 

 

Template:OutSystems/Documentation_KB/Breadcrumb_New_Layout

 

 

Template:OutSystems/OSLanguageSwitcher

 

 

 

OutSystems

MABS 5.0に関する問題のトラブルシューティング

モバイルアプリビルドサービス(MABS)バージョン5.0を使用してアプリの作成を開始すると、何らかの問題が発生する場合があります。このドキュメントは、この特定のバージョンに関する問題の解決をサポートするためのものです。

MABS 5.0では、生成されるAndroidアプリのターゲットSDKがAndroid P(API 28)に上がりました。これに対し、たとえば、MABS 4.0ではAPI 26でした。これに伴い、複数のコンポーネントが更新されており、このために互換性を破る変更が発生する可能性があります。

この問題を理解するには、ログファイルのトラブルシューティング情報を確認します。「What went wrong」を検索すると、その下に役立つ情報がある場合があります。または、ログファイルの最後の方にある情報を確認します。

この記事で問題が見つからない場合は、「モバイルアプリ生成のトラブルシューティング」をご覧ください。

最終的に、問題をどうしても解決することができない場合は、OutSystems Supportにお問い合わせください。

Cordova-androidパッケージの新しいディレクトリ構造

更新されたコンポーネントの1つに、Cordova-androidパッケージ(バージョン8.0.0への更新)があります。この更新によって、Androidプロジェクトの構造が変更され、:appという新しいプロジェクト内にアプリケーションコードが配置されるようになりました。

このため、プロジェクトのディレクトリツリーが変更になります。Androidプロジェクトのルートにあった多くのファイルは、現在は:appプロジェクトのディレクトリ内にあります。これには、ソースファイル、リソース、アセットなどが含まれます(Service Studio経由でインポートされたリソースも含まれます)。

一部のプラグインでは、これらのディレクトリのファイルをコピーしたり、ファイルへのアクセスを試行したりします。この新しいCordova-androidバージョンではディレクトリが異なるため、一部のプラグインがMABS 5.0で適切に動作しない場合があります。

OutSystemsがサポートするプラグインでこの影響を受けるのは、OneSignal Pluginのみです。問題を回避するには、「サポート対象プラグインのバージョン」セクションの表をご覧ください。

プラグインの中には、使用されているバージョンを評価し、それに基づいてディレクトリを調整することにより、新しいCordova-androidバージョンでこれらのディレクトリに依存するタスクを実行できるものがあります。

新しいAndroidサポートライブラリのバージョンとOutSystemsプラグイン

OutSystemsがサポートするプラグインのうち、ライブラリのバージョンの変更の影響を受けるものは以下の5つです。

  • Barcodeプラグイン
  • Cameraプラグイン
  • Local Notificationsプラグイン
  • OneSignalプラグイン
  • PushWooshプラグイン

MABS 5.0では古いバージョンが動作しますが、保証されません。一方、Androidサポートライブラリのバージョン28を使用するプラグインは、以前のMABSバージョンと互換性がありません。Gradleの解決に関する問題を回避するには、「サポート対象プラグインのバージョン」セクションの表をご覧ください。

ターゲットSDKのバージョン28への更新に合わせて、OutSystemsアプリケーションコアとサポート対象プラグインの両方で、Androidサポートライブラリもバージョン28に更新されました。これにより、一部のプラグインの間でGradleの解決に関する問題が発生する可能性があります。このトピックの詳細については、「MABSのAndroidサポートライブラリバージョン」をご覧ください。

サポート対象プラグインのバージョン

サポート対象のOutSystemsプラグインでは、以下のバージョンを使用する必要があります。

プラグイン名 MABS 4のバージョン MABS 5のバージョン
Barcodeプラグイン 3.x.x 4.x.x
Cameraプラグイン 4.x.x 5.x.x
Local Notificationsプラグイン 5.x.x 6.x.x
OneSignalプラグイン 2.x.x 3.x.x
PushWooshプラグイン 3.x.x 4.x.x

よくあるエラー

このセクションでは、いくつかの一般的なエラーの説明とその修正方法を提供しています。

ファイルが見つからない

症状

ビルドをリクエストしているときに、以下のようなエラーが発生します。

  • アプリケーション生成中のエラー。スクリプト「platforms/android/app/cordova-android-support-gradle-release/properties.gradle」が見つからなかったために発生しました。スクリプトのパスを確認し、再試行してください。
  • Cordovaプラグイン「cordova-plugin-firebase」のインストール中のエラー。Error: ENOENT: no such file or directory, scandir 'platforms/android/assets/www/google-services'。

原因

このエラーは、アプリのビルド中にプラグインがファイルへのアクセスを試行したとき、ファイルが見つからなかった場合に発生します。これには、複数の理由が考えられます。

  • Cordova-androidバージョンのため、プラグインには使用中のMABSバージョンとの互換性がない
  • プラグインが適切に構成されていない
  • プラグインのコード内にエラーがある

OneSignalプラグインを使用している場合で見つからないファイルがplatforms/android/app/cordova-android-support-gradle-release/properties.gradleである場合は、使用しているOneSignalプラグインのバージョンが適切ではない可能性が高いです。

解決策

OneSignalプラグインを使用している場合:

  • 「サポート対象プラグインのバージョン」セクションの表をご覧ください。

前の手順で問題が修正されない場合:

  • プラグインのドキュメントを参照し、プラグインが適切に構成されていることを確認します。
  • プラグインを、新しいCordova-androidバージョンをサポートしている可能性のある新しいバージョンにアップグレードしてみます。

問題が続く場合:

  • Cordova-androidディレクトリの変更に対応するようにプラグインを変更します(このセクションで説明されているディレクトリの変更をご覧ください)。

最小Android SDKに互換性がない

症状

ビルドをリクエストしているときに、以下のようなエラーが発生します。

  • アプリケーション生成中のエラー。ライブラリ: some-lib: Android SDK 21以上が必要です。これはアプリケーションで必要な16より上です。この値が拡張構成で上書きされているかどうかを確認してください。

原因

このエラーは、アプリケーションが必要とする最小SDKより上の最小SDKを必要とするライブラリを使用するアプリをビルドしているときに発生します。ライブラリがアプリケーションの最小SDKでは利用できないクラス、メソッド、リソースなどを使用しようとする可能性があるため、このアプリのビルドは失敗します。

これは、アプリケーションの拡張構成でこの値が上書きされることによって発生する可能性があります。

ログファイルには、このような内容が含まれます。これは、アプリケーションの最小SDKは16であるが、最小SDKが21のライブラリsome-libを使用していることを示しています。

* What went wrong: > Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 21 declared in library [:some-lib:] .gradle/caches/transforms-1/files-1.1/some-debug.aar/0123456790abcdef0123456789abcdef/AndroidManifest.xml as the library might be using APIs not available in 16 Suggestion: use a compatible library with a minSdk of at most 16, or increase this project's minSdk version to at least 21, or use tools:overrideLibrary="com.some.api.some" to force usage (may lead to runtime failures)

解決策

以下の方法を試行することができます。

  • 拡張構成で定義されている最小SDKの値を確認します。

問題が続く場合:

  • 問題のあるライブラリを使用しているプラグインの他のバージョンを使用してみます。