相关疑难解决方法(0)

如何在Android应用程序中调用Mono for Android类?

我在Mono for Android项目中创建了一个相当简单的Activity:

[Activity(Label = "AndroidApplication1", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : Activity
{
    private string value = "intitial";

    [Export]
    public string GetString()
    {
        return value;
    }

    [Export]
    public void SetString(string newValue)
    {
        value = newValue;
    }
}
Run Code Online (Sandbox Code Playgroud)

该活动应仅作为概念验证,因此其简单性.现在,我希望能够从基于Java的"普通"Android应用程序调用方法GetString().

Xamarin的文档中,我已经阅读了Java to Managed interop,这似乎正是我正在寻找的.如果我理解正确,当Mono for Android应用程序编译时,它会生成称为Android Callable Wrappers(ACW)的Java类.然后我应该可以从基于Java的Android应用程序调用这些ACW上的方法.

问题是,我如何从基于Java的Android应用程序引用编译的Mono for Android应用程序(apk文件)?

这是我现在卡住的地方,无法找到任何具体的例子.这里有类似的问题(这个这一个)和一些博客,但它们只是归结为"使用ACW".但到底怎么样?也许我错过了一些明显的东西,不是Android家伙.

我试过的是动态加载我从我的Mono for Android apk中拉出来的dex文件.我只是把它放在存储卡上,然后尝试使用基于Java的Android应用程序加载它(我已经关注了这篇博文).找到了ACW类,但是当我尝试创建它的实例时,我收到以下错误:DexClassLoader

找不到本机Lmno/android/Runtime; .register(Ljava/lang/String; Ljava/lang/Class; Ljava/lang/String;)的实现

我想我必须以某种方式将Mono …

c# java android interop xamarin.android

5
推荐指数
1
解决办法
3383
查看次数

C#版Flee?

Flee真的很棒,但有人知道它的C#端口吗?

我在这个问题的一个答案中看到了这一点:动态 编译C#

我更希望c#能够处理可能出现的问题.

c#

3
推荐指数
1
解决办法
2462
查看次数

标签 统计

c# ×2

android ×1

interop ×1

java ×1

xamarin.android ×1