我尝试了很多不同的方法。我用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中
然后我什么都没得到。 没有错误,没有输出,只是命令行返回答案 0 :(得分:0)
您需要像常规主机一样编译.NET程序集(System.dll ...)并将它们放入Android中。
另外将MONO_PATH
定义为单声道运行时。