杭州网站建设zj net,离石网站建设,wordpress页面id,安阳实力网站建设首选1#xff09;新建空的AndroidStudio工程#xff0c;但是新建过程时最小SDK版本要与unity一致#xff0c;如下图所示#xff0c;本次操作均为api16 2#xff09;创建Library#xff0c;如下图所示#xff0c;新建module#xff0c;然后选择Android Library。 新建模块为…1新建空的AndroidStudio工程但是新建过程时最小SDK版本要与unity一致如下图所示本次操作均为api16 2创建Library如下图所示新建module然后选择Android Library。 新建模块为UnityPlugin如下图所示注意此时的PackageName后续用得到 4引入unity的classes.jar 按下图所示找到Unity安装目录下的classes.jar文件并放入上述工程中\unityplugin\libs下即新建Module下的libs下 选择File-ProjectStructure调出Project Structure界面依次选择unityplugin上述建立的module-Dependencies然后点击右侧加号-Jar dependences并选择libs下引入的classes.jar如下图所示确定引入。 5添加插件代码 在com.idea.unityplugin下新建类UnityPlugin 在类UnityPlugin继承UnityPlayerActivity 中添加如下代码 package com.idea.unityplugin;import android.os.Bundle;
import android.widget.Toast;import com.unity3d.player.UnityPlayerActivity;public class UnityPlugin extends UnityPlayerActivity {Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);}// 传入数据并通过toast显示public void ShowToast(final String message){runOnUiThread(new Runnable() {Overridepublic void run() {Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();}});}// 返回一个字符串静态方法public static String GetInformation(){return Android Static Msg;}// 返回一个字符串非静态方法public String GetInfo(){return Android Msg;}
} 6生成jar或者aar包 点击build.gradle此插件的gradle添加如下代码操作如下图所示。 task makeJar(type: Copy) {delete build/libs/unityplugin.jarfrom(build/intermediates/bundles/release/)into(build/libs/)include(classes.jar)rename(classes.jar, unityplugin.jar)
}makeJar.dependsOn(build) 点击Terminal输入gradlew makeJar回车等待执行结束即可即可在\unityplugin\build\outputs\aar下目录下找到.aar文件。 7将6中aar文件放入unity中Assets文件下Plugins\Android目录下同时新建AndroidManifest.xml文件并添加如下内容 manifest xmlns:androidhttp://schemas.android.com/apk/res/androidpackagecom.xxxx.androidpluginandroid:versionCode1android:versionName1.0applicationandroid:allowBackuptrueandroid:labelstring/app_nameandroid:supportsRtltrueactivity android:namecom.XXXX.unityplugin.UnityPluginandroid:labelstring/app_nameintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity/application/manifest 注意事项如下图所示 8调用代码 using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class CallAndroidMethod : MonoBehaviour
{public Button[] buttons;public Text text;private void ShowAndroidToast(){//text.text Toast ;using (AndroidJavaClass jc new AndroidJavaClass(com.unity3d.player.UnityPlayer)){using (AndroidJavaObject jo jc.GetStaticAndroidJavaObject(currentActivity)){text.text Toast:;jo.Call(ShowToast, Android Toast);}}//using (AndroidJavaClass jc new AndroidJavaClass(com.unity3d.player.UnityPlayer))//{// text.text Toast1 ;// using (AndroidJavaObject jo jc.GetStaticAndroidJavaObject(crrentActivity))// {// text.text Toast2 ;// //jo.Call(ShowToast, Android Toast);// jo.CallStaticstring(GetInformation);// text.text Toast3 ;// }//}}private void GetInfomation(){string info ;using (AndroidJavaClass jc new AndroidJavaClass(com.unity3d.player.UnityPlayer)){using (AndroidJavaObject jo jc.GetStaticAndroidJavaObject(currentActivity)){text.text Static:;info jo.CallStaticstring(GetInformation);}}text.text info;}private void GetInfo(){string info ;using (AndroidJavaClass jc new AndroidJavaClass(com.unity3d.player.UnityPlayer)){using (AndroidJavaObject jo jc.GetStaticAndroidJavaObject(currentActivity)){text.text Nonstatic:;info jo.Callstring(GetInfo);}}text.text info;}// Use this for initializationvoid Start (){buttons[0].onClick.AddListener(ShowAndroidToast);buttons[1].onClick.AddListener(GetInfomation);buttons[2].onClick.AddListener(GetInfo);}
} 然后发布apk即可用了 出现问题 1CommandInvokationFailure: Gradle build failed. 解决修改Build System为Internal 2IOException: Failed to Move File / Directory from Temp/StagingArea\android-libraries\app-debug\classes.jar to Temp/StagingArea\android-libraries\app-debug\libs\classes.jar. 解决将插件aar文件用解压软件打开直接双击并不解压然后删除libs下的classed.jar即可。 参考文献 https://blog.csdn.net/qq_16763249/article/details/81876038非MainActivity调用方法纯java类调用 https://blog.csdn.net/qq_28775437/article/details/78605691?locationNum3fps1打包报错问题汇总 https://blog.csdn.net/qiu_zhongya/article/details/51419456主要参考文献_原文 转载于:https://www.cnblogs.com/llstart-new0201/p/9995022.html