【发布时间】:2014-07-14 09:15:17
【问题描述】:
我创建了一个示例 android 项目,其中包含一个名为“MainActivity”的活动,并在此活动中创建了一个简单的静态和非静态函数。然后我把这个项目转换成LibraryProject,所以我在它的bin文件夹下找到了这个项目的jar文件。当我将此 .jar 文件和 AndroidManifest.xml 文件复制到 Unity 的 Assets/Plugins/Android 文件夹中时。静态函数和非静态函数都不会被调用。
using (AndroidJavaClass cls_UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
using (AndroidJavaObject obj_Activity = cls_UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity"))
{
obj_Activity .CallStatic("showMap");
}
}
Android 代码是
public class MainActivity extends UnityPlayerActivity {
com.google.android.gms.maps.MapView mapView;
String apiKey="AIzaSyA-CxbAb1fA7QLJEvq1eSCSvHq9zh1mgEI";
static WebView view;
static LinearLayout layout;
public static Context context;
static LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
layout = new LinearLayout(this);
setContentView(layout);
context=this;
}
public static void showMap()
{
Log.d("looter", "google.com");
view=new WebView(context);
view.setLayoutParams(params);
view.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// Log.i(TAG, "Processing webview url click...");
view.loadUrl(url);
return true;
}
public void onPageFinished(WebView view, String url) {
//Log.i(TAG, "Finished loading URL: " +url);
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
}
});
view.loadUrl("http://www.google.com");
layout.addView(view);
}
【问题讨论】:
-
调用函数时是否在 Eclipse 中收到任何日志消息?我怀疑 Unity 会发送一条消息说它找不到该函数,或者你会从你的函数中收到一条日志消息。
标签: java c# android plugins unity3d