Android Studioによりネイティブプラグインを作成し、Unityに作成したネイティブプラグインを実装し、新規プロジェクトを作成して、Android携帯にネイティブプラグインとゲームオブジェクトを転送して実行します。このブログは「Unityで使用するAndroidのネイティブプラグインの作成(2026/01/16) – Android編」からの続編です。古いバージョンでのネイティブプラグインの作成は、「Unityで使用するAndroidのネイティブプラグインの作成(2024/01/06) – Unity編」に示します。
・Android携帯:SH-52E Android14(API34) bleバージョン5.3
・Android開発環境:Android Studio Otter 2 Feature Drop | 2025.2.2Androidバージョン:7.1.2
・Unity: Unity 6 (6000.3.2f1)
Unityによりネイティブプラグインの実装
新規プロジェクト「PluginTest2601」を作成してネイティブプラグイン「unitylibrary-release.aar」を実装して、Android携帯にゲームオブジェクトを転送して実行します。
- Unity Hubで、つぎのように設定し、新規プロジェクト「PluginTest2601」を作成します。
- Unityエディタでにフォルダ「Assets/Plugins/Android」を作成し、作成したネイティブプラグイン「unitylibrary-release.aar」をドラッグ&ドロップします。
- Hierarchyタブの「+」→「 UI」からText、Buttonを作成します。
- それぞれのx,y位置を調整します。
- Assetsメニューから「Create」→「Scripting」→「Monobehaviour Script」を選択して、次に示すスクリプト「UnityTest2601.cs」を作成します。
- 21行目で作成したネイティブプラグイン「unitylibrary-release.aar」を呼び出します。
- 23行目でネイティブプラグイン「FromUnity」関数を呼び出し、戻り値をAndroid携帯に表示します。カウンタ「counter」値が更新されて表示されます。
- 作成したスクリプト「UnityTest2601.cs」をゲームオブジェクト「Canvas」にドラッグ&ドロップし、inspectorタブのスクリプト「UnityTest2401.cs」の「Txt Message」「Btn Android」それぞれにHierarchyタブの「Text(TMP)」、「Button」をドラッグ&ドロップします。
- Fileメニューから「Build Profiles」を選択します。表示された「Build Profiles」画面で「Android」を選択して「Switch Platform」ボタンをクリックします。
- Android携帯とパソコンとをUSBケーブルで接続し、Android端末側の「設定」により「開発者向けオプション」で「USBデバッグ」をチェックします。
- 「Build And Run」ボタンをクリックし、作成した「apk」ファイルを保存するファイル名「PluginTest2601」を設定します。保存するフォルダは、Assetsフォルダと同じ階層に「 Builds 」フォルダを新規作成します。
- これによりapkファイルの作成とAndroid携帯への書き込みが行われます。Android携帯への書き込みが終了すると、次の画面が表示され、「Button」ボタンをクリックするごとに数値がカウントアップします。
UnityTest2601.cs
using UnityEngine;
using UnityEngine.UI;
public class UnityTest2601 : MonoBehaviour
{
[SerializeField] Text txtMessage;
[SerializeField] Button btnAndroid;
int counter = 0;
void Start()
{
btnAndroid.onClick.AddListener(CallAndroidPlugin);
txtMessage.text = "初期値";
}
/// <summary>
/// ボタンが押されたらプラグインを呼ぶ
/// </summary>
public void CallAndroidPlugin()
{
using (AndroidJavaClass androidJavaClass = new AndroidJavaClass("com.tomosoft.unitylibrary.UnityPlugin"))
{
txtMessage.text = androidJavaClass.CallStatic<string>("FromUnity", counter.ToString());
counter++;
}
}
/// <summary>
/// プラグイン側からUnityを呼ぶ
/// </summary>
public void FromAndroid(string str)
{
// txtMessage.text += str;
}
}
再生中(Play Mode)の画面の色を変更
再生中/停止中を判断するために、「Playmode Tint(プレイモード時の色変更)」設定します。
- Edit > Preferences
- Colors を選択
- Playmode Tint を「赤」や「緑」など極端な色に変える
- 再生ボタンを押す。次のように画面の色が変わります。
Build時のエラー
エラーメッセージ:Task :launcher:processReleaseMainManifest FAILED
Execution failed for task ':launcher:processReleaseMainManifest'. > Manifest merger failed : uses-sdk:minSdkVersion 25 cannot be smaller than version 30 declared in library [:unitylibrary-release:] C:\Users\ne\.gradle\caches\8.13\transforms\cce45760066a0fbbceb6eff39c7f3dd2\transformed\jetified-unitylibrary-release\AndroidManifest.xml as the library might be using APIs not available in 25 Suggestion: use a compatible library with a minSdk of at most 25, or increase this project's minSdk version to at least 30, or use tools:overrideLibrary="com.tomosoft.unitylibrary" to force usage (may lead to runtime failures)
原因:「Unity本体の設定(minSdkVersion 25)」と「自作したJavaライブラリの設定(minSdkVersion 30)」が食い違っています。
処置:
- Unityのメニューから Edit > Project Settings を開きます。
- Player > Android設定(スマホのアイコン) > Other Settings を開きます。
- Identification セクションにある Minimum API Level を探します。
- これを Android 11.0 (API level 30) に変更します。
Logcatの設定方法
Android実機のログ(Debug.Log や Java側の Log.d)を確認するために、Unityエディタに内蔵されている Android Logcatパッケージを使用します。
Unityエディタ内に専用のウィンドウを表示させるために、上部メニューの Window > Analysis > Android Logcat を選択します。
もし項目がない場合は、Window > Package Manager から Android Logcat を検索してインストールしてください。
自分のアプリのログだけを見つけるために、次のようにフィルターを設定します。。
- Package Name: 自分のアプリのパッケージ名(例: com.tomosoft.unitylibrary など)を選択すると、そのアプリのログだけが表示されます。
- Search (Filter): 検索窓に「Unity 」 と入力すると、C#の Debug.Log だけを抽出できます。Java側で独自のタグを付けている場合は、そのタグ名で検索します。











