如何调用 AAR 库方法?
How to call AAR library methods?
我正在尝试为 Application Insights Android SDK
创建一个简单的包装器
我在 Android Studio 中构建库,导致此调试 AAR file 然后我将其添加到 Xamarin Studio 中的库绑定项目。
但是,当我引用它时,我有命名空间:
using Com.Microsoft.Applicationinsights.Library;
但它不包含 class ApplicationInsights,如果它与它包装的 java 库匹配,它应该包含。
我不想要花哨的完整 CLR 包装器,我只想调用 class 上的 "setup" 方法,该方法将应用程序的上下文作为参数,然后能够简单地调用跟踪方法。
创建一个新的Java绑定库,添加AAR文件然后你可以做这样的事情:
_appInsights = JNIEnv.FindClass ("com/microsoft/applicationinsights/library/ApplicationInsights");
_methodSetup = JNIEnv.GetStaticMethodID(_appInsights, "setup",
"(Landroid/content/Context;Landroid/app/Application;Ljava/lang/String;)V");
对其调用设置:
public static void Setup(Android.Content.Context context, Android.App.Application app, String key) {
var c = new JValue(context);
var a = new JValue(app);
var s = new JValue(new Java.Lang.String(key));
JNIEnv.CallStaticVoidMethod (_appInsights, _methodSetup, c, a, s);
}
我正在尝试为 Application Insights Android SDK
创建一个简单的包装器我在 Android Studio 中构建库,导致此调试 AAR file 然后我将其添加到 Xamarin Studio 中的库绑定项目。
但是,当我引用它时,我有命名空间:
using Com.Microsoft.Applicationinsights.Library;
但它不包含 class ApplicationInsights,如果它与它包装的 java 库匹配,它应该包含。
我不想要花哨的完整 CLR 包装器,我只想调用 class 上的 "setup" 方法,该方法将应用程序的上下文作为参数,然后能够简单地调用跟踪方法。
创建一个新的Java绑定库,添加AAR文件然后你可以做这样的事情:
_appInsights = JNIEnv.FindClass ("com/microsoft/applicationinsights/library/ApplicationInsights");
_methodSetup = JNIEnv.GetStaticMethodID(_appInsights, "setup",
"(Landroid/content/Context;Landroid/app/Application;Ljava/lang/String;)V");
对其调用设置:
public static void Setup(Android.Content.Context context, Android.App.Application app, String key) {
var c = new JValue(context);
var a = new JValue(app);
var s = new JValue(new Java.Lang.String(key));
JNIEnv.CallStaticVoidMethod (_appInsights, _methodSetup, c, a, s);
}