メインコンテンツにジャンプ

AARファイルをCapacitor プラグインにどのように組み込むか

AARファイルをCapacitor プラグインに組み込むことで、WebアプリにネイティブのAndroid機能を追加することができます。ここでは、ステップごとに説明したガイドを通じて、AARファイルを組み込む方法を学びます。

マーティン・ドナディュー

マーティン・ドナディュー

コンテンツマーケター

AARファイルをCapacitor プラグインにどのように組み込むか

__CAPGO_KEEP_0__ でAndroid機能を組み込む方法 Capacitor app? このガイドでは、Android Archive (AAR) ファイルを使用する方法について説明します。 Capacitor プラグイン Androidネイティブ機能とクロスプラットフォームWebアプリを組み合わせるために使用するAndroid Archive (AAR) ファイル

重要なポイント

バールバームコンディショナ

  1. バールバームコンディショナ バールバームコンディショナ
  2. バールバームコンディショナ バールバームコンディショナ Capacitor プラグイン.
  3. AARファイルを追加: を置きます android/libs Gradle依存関係を更新します。
  4. プラグインcodeを書きます。 JavaScriptとAAR機能をリンクするには CapacitorのAPI.
  5. テストを徹底的に行います: Android Studioのデバッガーを使用して、Smoothな統合を確実に実現します。

このガイドを実行することで、AARファイルをCapacitorプラグインに組み込むことができます。Native Android機能をWebアプリに統合することができます。

Androidライブラリ(AARファイル)をWebアプリに埋め込む方法 capacitor プラグイン

capacitor

開発環境の設定要件

__CAPGO_KEEP_0__でAARファイルと取り組む前に、開発環境が適切に設定されていることを確認してください。

必要なソフトウェア

CapacitorプラグインでAARファイルと取り組むには、次のソフトウェアが必要です。

ソフトウェア 最小バージョン 目的
Android Studio 2022.1.1 またはそれ以上 Android 開発用の主なIDE
Java Development Kit 11 以上 Android 開発に必要
Node.js 14.0 以上 Capacitor と npm パッケージの管理用
Gradle 7.3 以上 Android のビルドツール
Git 2.30 以上 バージョン管理とパッケージ管理のために

さらに、次のコンポーネントがあなたのSDKマネージャーに含まれていることを確認してください。

  • Android SDK プラットフォーム 33 (Android 13.0)
  • Android SDK ビルドツール 33.0.0
  • Android SDK コマンドラインツール
  • Android エミュレータ
  • Android SDK プラットフォームツール

プロジェクト設定の手順

1. 開発環境を初期化する

最初に、次の構造を持つ新しいディレクトリを作成してください。

my-plugin/
├── android/
│   ├── src/
│   └── build.gradle
├── src/
│   └── definitions.ts
└── package.json

2. Android Studioの設定を構成する

Android Studioを起動し、次の設定を調整してください。

  • Gradle JDKのバージョン11以上に設定してください。
  • Android SDK コンポーネントの自動ダウンロード機能を有効にします。
  • システム環境変数を正しいAndroid SDK パスで更新してください。

3. プラグイン構造を準備する

を更新して、AARファイルのサポートを含めるようにします。 android/build.gradle バージョン管理を設定する

android {
    compileSdkVersion 33
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }

    repositories {
        flatDir {
            dirs 'libs'
        }
    }
}

4. プロジェクトディレクトリでGitを初期化し、不要なファイルを除外するためのを生成します。

ここにサンプル .gitignore これらのステップが完了したら、AARファイルを追加する準備が整います。 .gitignore:

android/build/
node_modules/
dist/
*.iml
.idea/
.gradle/
local.properties

プラグインにAARファイルを追加する

AARファイルを取得する

AARファイル

AARファイルは、第三者製のSDK、カスタムライブラリ、またはMaven依存関係から来ることがあります。 そのソース、バージョン、目的をREADMEファイルに記録することをお勧めします。 README __CAPGO_KEEP_0__ libs __CAPGO_KEEP_0__

ソースタイプ 説明 ベストプラクティス
第三者製のSDK ベンダーから提供されたプリコンパイルされたライブラリ ベンダー版のバージョン詳細をREADMEに記録する
カスタムAndroidライブラリ 自社開発のAndroidモジュール ビルドプロセスを記録する
Maven依存関係 __CAPGO_KEEP_0__からリモートリポジトリに変換 オフラインビルド用にローカルにキャッシュ

AARファイルが用意でき、ドキュメントが完了したら、プラグインを設定してAARファイルを含めることができます。

プラグインファイルの設定

AAR依存関係をSmoothに統合するために、プラグインファイルを整理してください。ここでは、プラグイン構造の例を示します。

my-plugin/
├── android/
│   ├── libs/        # AAR files with README
│   ├── src/
│   └── build.gradle
├── src/
│   └── definitions.ts
└── package.json
{
    "files": [
        "android/libs/*.aar",
        "android/src/**/*",
        "src/**/*"
    ]
}

AARファイルの配置

AAR機能を有効にするには、次の手順に従ってプラグインのディレクトリにファイルを配置してください。 android/libs 明確で一貫した名前の形式を使用することをお勧めします。たとえば

  • バージョン管理を行うファイル。たとえば: libraryname-version.aar.
  • バージョン管理を行うファイル。たとえば: versions.properties バージョン管理を行うファイル。たとえば:
library1=1.2.3
library2=2.0.0
  • ファイルを追加 dependencies.gradle 他の依存関係用のファイル:
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.aar'])
    implementation 'com.example:dependency:1.0.0'
}
  • ベンダー固有のファイルをサブディレクトリに分類して、管理の向上を実現します。
android/libs/
├── vendor1/
│   ├── feature.aar
│   └── config.json
└── vendor2/
    ├── module.aar
    └── settings.xml

__CAPGO_KEEP_0__ プラグインに AAR ファイルを統合するには、Gradle を適切に設定する必要があります。まず、次のリポジトリ設定を追加してください。

Gradle 設定手順

Gradle ビルドツールインターフェイス

build.gradle を更新

AAR ファイルを Capacitor プラグインに統合するには、Gradle を適切に設定する必要があります。まず、次のリポジトリ設定を追加してください。 android/build.gradle:

repositories {
    google()
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

次に、AAR 依存関係を dependencies ブロックに含めてください。

dependencies {
    implementation files('libs/your-library.aar')
    implementation fileTree(dir: 'libs', include: ['**/*.aar'])
    implementation "com.getcapacitor:core:${capacitorVersion}"
    implementation "androidx.appcompat:appcompat:1.6.1"
}

バージョン管理の向上のために、 gradle.properties プロジェクトのルートディレクトリにファイルを作成し、ライブラリのバージョンを定義する:

# Library versions
MY_LIBRARY_VERSION=1.2.3
CAPACITOR_VERSION=5.5.0

AARファイルに付随する追加の依存関係がある場合、次のように宣言する: android/build.gradle 次の変更を実施した後、プロジェクトをSyncする:

android {
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 33
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
    }
}

Gradle Syncを実行する:

Android Studioでプロジェクトを開き、Gradleが自動的にSyncされるのを待つ。Syncが始まらない場合は、ツールバーの「GradleファイルとプロジェクトをSyncする」ボタンをクリックする。

Syncが完了した後、以下を確認する:

チェックポイント

予想結果 一般的な問題 ビルド出力
AAR関連のエラーがない __CAPGO_KEEP_0__ 依存関係が欠けている
ライブラリの解決 AARファイルが正しくリンクされている パス参照が不正
バージョン間の競合 依存関係のバージョンに関する問題がない 互換性のないバージョン

syncが失敗した場合、設定を確認してください。たとえば、次の設定が有効になっていることを確認してください。

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    lintOptions {
        abortOnError false
    }
}

大きなAARファイルの場合、Gradleのメモリ割り当てを増やす必要があるかもしれません。 gradle.properties:

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m

syncが成功した後、AARファイルは完全に統合され、テスト用に準備されています。

AAR機能をCapacitorに接続する

プラグインクラスを書き込む

Gradleファイルが同期されたら、AAR機能を接続するためにプラグインクラスを拡張する時間です。このステップでは、JavaScriptとネイティブAndroidをリンクします。 プラグイン class. This step links JavaScript to the native Android code.

@NativePlugin(
    permissions = {
        Manifest.permission.REQUIRED_PERMISSION
    }
)
public class YourPlugin extends Plugin {
    private YourAARLibrary libraryInstance;

    @Override
    public void load() {
        super.load();
        libraryInstance = new YourAARLibrary(getContext());
    }
}

コンポーネント

目的 実装注意点 コンテキスト
Androidアプリのコンテキスト プラグインクラスから取得する プラグインクラスから取得する getContext() 設定
from the Plugin class ライブラリ設定 プラグインからオプションをパスする
ライフサイクル プラグインの状態管理 オーバーライド load()handleOnDestroy()

プラグインメソッドの作成

次に、注釈を使用してプラグインのメソッドを定義します。 これらのメソッドは、JavaScript と Java 間のデータ交換を処理します。 @PluginMethod 非同期に実行する必要があるタスクの場合:

@PluginMethod
public void performAction(PluginCall call) {
    try {
        // Get data from JavaScript
        String inputData = call.getString("inputKey");

        // Call AAR library method
        YourLibraryResult result = libraryInstance.processData(inputData);

        // Return result to JavaScript
        JSObject ret = new JSObject();
        ret.put("value", result.getValue());
        call.resolve(ret);
    } catch (Exception e) {
        call.reject("Error processing data", e);
    }
}

ここでは、JavaScript と Java の間でよく使われる型がどのように変換されるかを示します:

@PluginMethod(returnType = PluginMethod.RETURN_CALLBACK)
public void startContinuousOperation(PluginCall call) {
    call.setKeepAlive(true);

    libraryInstance.setCallback(new LibraryCallback() {
        @Override
        public void onUpdate(String data) {
            JSObject ret = new JSObject();
            ret.put("data", data);
            call.resolve(ret);
        }
    });
}

JavaScript Type

__CAPGO_KEEP_0__ Java タイプ 変換メソッド
オブジェクト JSObject call.getObject()
配列 JSArray call.getArray()
文字列 文字列 call.getString()
数値 整数/小数 call.getInt()/call.getDouble()
真偽値 真偽値 call.getBoolean()

リソースのクリーンアップのために、メソッドを上書きします。 handleOnDestroy __CAPGO_KEEP_0__

@Override
protected void handleOnDestroy() {
    if (libraryInstance != null) {
        libraryInstance.cleanup();
        libraryInstance = null;
    }
    super.handleOnDestroy();
}

これらのメソッドを実装すると、ネイティブブリッジが使用可能になります。Android Studioのデバッグ環境で実装をテストして、期待どおりに動作することを確認します。

問題のテストと修正

デバッグ Android Studio

Android Studio

Android StudioでAAR統合をデバッグするには、プロジェクトのデバッグモードを有効にします。 build.gradle __CAPGO_KEEP_0__

android {
    buildTypes {
        debug {
            debuggable true
            minifyEnabled false
        }
    }
}

プラグインメソッドでブレークポイントを追加して、データフローのトラッキングと潜在的な問題の特定に役立ちます。

@PluginMethod
public void yourMethod(PluginCall call) {
    // Set a breakpoint here to inspect input data
    String inputValue = call.getString("key");
    // Another breakpoint here to check method calls to the AAR
    libraryInstance.someMethod(inputValue);
}

Android Studioのデバッグパネルを使用して、重要なエリアを監視します。

デバッグエリア チェックすること 一般的な問題
Logcat __CAPGO_KEEP_0__初期化メッセージ 権限の欠如または不正確なコンテキスト
変数 データ型の変換 Null値または型の不一致
スタックトレース メソッドの実行フロー 無効なメソッドの呼び出しまたはスレッドの問題
メモリ リソース使用量 メモリリーク

デバッグが問題を解決しない場合は、次のセクションのトラブルシューティング手順に従ってください。

トラブルシューティング手順

デバッグだけでは十分ではない場合は、次の手順を使用して一般的な問題を解決します:

1.依存関係の競合

ファイル内のバージョン競合を確認します。バージョンを強制することで競合を解決できます: build.gradle 2.ネイティブライブラリの欠如

configurations.all {
    resolutionStrategy {
        force 'com.google.android:android:4.1.1.4'
        // Add other forced versions as needed
    }
}

AARには必要なファイルが含まれていることを確認し、適切なディレクトリに配置する必要があります。

3.マニフェストマージャー問題 .so 4.依存関係のバージョン

  • jniLibs/armeabi-v7a/
  • jniLibs/arm64-v8a/
  • jniLibs/x86/
  • jniLibs/x86_64/

依存関係のバージョンを確認し、必要に応じてバージョンを強制する必要があります。

manifestの競合が発生した場合、問題のあるライブラリを上書きするには、以下をファイルに含めてください。 AndroidManifest.xml __CAPGO_KEEP_0__ファイルに含めるもの

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="your.plugin.package">
    <uses-sdk tools:overrideLibrary="conflicting.library.package"/>
</manifest>

4. ランタイムクラッシュとメモリ管理

Android StudioのPerformanceタブを使用して、ランタイムの安定性を監視してください。初期化問題の場合、例外を慎重に処理してください。

try {
    libraryInstance = new YourAARLibrary(getContext());
} catch (Exception e) {
    Log.e("PluginError", "Failed to initialize library: " + e.getMessage());
    return;
}

メモリリークを防ぐには、リソースを適切に解放してください。Android StudioのMemory Profilerを使用して、ヒープの使用状況を追跡し、リークを特定してください。

概要

CapacitorプラグインにAARファイルを統合するには、Android環境を設定し、AARファイルを正しく配置し、Gradleを正確に設定し、徹底的にテストする必要があります。

主な実装フェーズ

フェーズ 要件 成功の指標
Development Setup Android Studio 4.0+、Gradle 7.0+ エラーなしでビルドが完了
AAR統合 ファイルの正しい配置、依存関係の正確さ マニフェストの競合なし
プラグイン開発 プラグインの明確な構造、正確なメソッドマッピング メソッドの実行が予想どおり
テスト デバッグモードが有効、効果的なエラーハンドリング 実行時クラッシュなし

基本的な概念をマスターしたら、より高度なテクニックを探索できます。

次のステップ

プラグインを強化するには、以下の領域に焦点を当ててください:

  • パフォーマンス最適化
    Android Studioのプロファイラーを使用して、メモリ使用量を監視し、リソースが適切にクリーンアップされることを確認してください。

  • 配布準備
    API ドキュメントを生成し、Android API のレベル29–34で互換性をテストし、すべてのAAR構成をドキュメント化してください。

  • メンテナンス戦略
    テストを自動化し、バージョン管理システムでAARバージョンを管理し、変更履歴を維持し、エラー報告を設定して生産的な問題を解決してください。

プラグインを公開する場合、AAR固有の設定とプラットフォーム制限に関する詳細なドキュメントを提供することを確認してください。これにより、他の開発者がプラグインを効果的に使用して採用することが容易になります。

Capacitor プラグインで「AARファイルを使用する方法」を継続して進めてください。

「AARファイルを使用する方法」を使用している場合 「AARファイルを使用する方法」をCapacitor プラグインで使用しています native プラグインの作業を計画するには、 Capgo プラグイン ディレクトリと接続する Capgo プラグイン ディレクトリ内での製品ワークフローについて Capacitor プラグインを Capgo で Capacitor プラグインを Capgo で実装する際の詳細 プラグインの追加または更新 プラグインの追加または更新の実装詳細 Ionic Enterprise プラグインの代替 Ionic Enterprise プラグインの代替の製品ワークフローについて Capgo ネイティブ ビルド Capgo ネイティブ ビルドの製品ワークフローについて

Capacitor アプリのリアルタイム更新

Capgo を使用すると、ウェブ層のバグが生じた場合、App Storeの承認待ちの日数を待たずに修正を配信できます。ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路を通じます。

Get Started Now

Latest from our Blog

Capgo を使用すると、プロフェッショナルなモバイルアプリを作成するために必要な最良の洞察を得ることができます。