我尝试了很多不同的方法。我使用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
make install
接着,编写一个简单的 C# 示例:
// HelloAndroid.cs
// 输出 HelloAndroid.exe
using System;
namespace HelloAndroid
{
class MainClass
{
public static void Main (string[] args)
{
Console.WriteLine ("Hello World!");
}
}
}
然后我将 mono-sgen、libmonosgen-2.0.so和 HelloAndroid.exe 复制到安卓目录中。
/data/data/com.example.helloandroid
将所有权限更改为755
将所有所有权更改为system:system
然后在ADP shell中输入
./mono-sgen HelloAndroid.exe
然后我什么都没有得到。 没有错误,没有输出,只有命令行返回