如何为x86 android交叉编译单声道

时间:2014-12-12 07:30:12

标签: c# android android-ndk mono

我尝试了很多不同的方法。我用NDK完成了编译,当我在带有adp shell的模拟器上运行它时,我没有输出。

来自tarball的

mono-3.10.0

以下是我的环境变量:

export CC=i686-linux-android-gcc
export SYSROOT=/home/XXUSERNAMEXX/Develop/android-ndk-r10d/platform/android-17/arch-x86
export PATH=/tmp/my-android-toolchain/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

这是我的配置:

 ./configure --disable-mcs-build --host=i686-linux-android --prefix=/home/XXUSERNAMEXX/vmshare/workspace/HelloJni/jni/mono-2.0 --target=i686-linux-android --build=i686-linux-gnu
然后就是     使 然后     make install

然后构建一个C#示例:     // HelloAndroid.cs     //输出HelloAndroid.exe     使用System;

namespace HelloAndroid
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            Console.WriteLine ("Hello World!");
        }
    }
}
然后我复制 单SGEN libmonosgen-2.0.so HelloAndroid.exe 到

的android目录
/data/data/com.example.helloandroid

将所有权限更改为755 将所有所有权更改为system:system

然后输入

./ mono-sgen HelloAndroid.exe

在adp shell中

然后我什么都没得到。 没有错误,没有输出,只是命令行返回

1 个答案:

答案 0 :(得分:0)

您需要像常规主机一样编译.NET程序集(System.dll ...)并将它们放入Android中。

另外将MONO_PATH定义为单声道运行时。