我对Android(由Novell)的Mono如何工作感兴趣.
我最大的问题是使用的实际运行时.MfA是否提供了一个Mono运行时,它包装并调用Dalvik运行时,或者在此操作中是否完全绕过了Dalvik?完全是别的吗?
我很好奇,因为我听说Mono运行时在移动设备上有更好的性能(不是我相信我在互联网上读到的任何内容......),而且我只是想了解整个事情.
关于比较和对比Mono/Dalvik运行时主题的任何其他一般知识将不胜感激.
谢谢!
我目前正在尝试在类上实现ILocationListener以接收GPS更新 - 这不是一个Activity,只是一个普通的C#类.
作为ILocationListener合同的一部分,我需要支持I JavaObject:
public IntPtr Handle
{
get { throw new NotImplementedException(); }
}
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
另外,有没有好的文档和/或博客文章讨论如何在MonoDroid中绑定C#类和Java对象 - 如果我能找到这些文档,那么我可能不需要问这样的问题和我我们希望也能写出更好的代码.
谢谢
我正在寻找一个跨平台的游戏开发框架.MonoGame看起来很容易学习和快速开发,但是我看到他们页面上的大部分游戏都不起作用,或者有很多错误.
任何人都可以解释MonoGame对于ios/droid专业手机游戏开发是否可靠?
我们知道,当应用程序做一些漫长的过程,比如从互联网上下载一些信息时,它可能会在加载应用程序之前显示启动画面,当应用程序完全加载时,它将显示主页面.在启动画面活动中,我们必须在线程中加载长进程,以避免在加载应用程序之前显示黑屏.我做了所有这些.但在显示应用程序之前还会出现黑屏.这是启动画面活动的onCreate方法:
protected override void OnCreate (Bundle bundle)
{
try {
base.OnCreate (bundle);
//_dt = DateTime.Now.AddSeconds (_splashTime);
SetContentView (Resource.Layout.Splash );
FirstLoadPB= FindViewById <ProgressBar >(Resource .Id.FirstLoadPB );
FirstLoadingInfo= FindViewById <TextView >(Resource .Id.FirstLoadInfo );
LoadApplication ();
} catch (System.Exception ex) {
Common.HandleException (ex);
}
}
Run Code Online (Sandbox Code Playgroud)
这是LoadApplication方法的代码:
public void LoadApplication()
{
new System.Threading.Thread (new ThreadStart (() =>
{
//Some Codes to load applications- Downloading from web and accessing the storage(Because was many codes - about 100 line- i was clear them.
} …Run Code Online (Sandbox Code Playgroud) 使用Xamarin.Android和Xamarin.iOS,我现在需要共享代码部分中的当前操作系统.无论是enum,int还是字符串,都没关系.
我试过这个:
System.Environment.OSVersion
Run Code Online (Sandbox Code Playgroud)
对于某些内核版本信息,它始终是"Unix".
有关于Android的信息,例如
Android.OS.Build.VERSION
Run Code Online (Sandbox Code Playgroud)
但它需要在Android特定代码部分.有没有办法知道公共库中的当前操作系统?
所以我有我的Xamarin.Android项目,其中包含几个库.当我尝试构建时,我收到一个错误,其中"java.exe"退出代码2.
经过几个小时的谷歌研究后,我发现我可以启用Multidex.根据Jon Doublas的博客文章,我做了上面提到的步骤. http://www.jon-douglas.com/2016/09/05/xamarin-android-multidex/
根据博客文章Android API Level> 21处理Multidex本身.我的经验是,它没有.我在API级别25上构建并使用相同的信息一次又一次地获得相同的错误.文章中的步骤没有帮助.看起来像Xamarin.Android不支持Multidex.
看来你必须自己处理Multidex,但我还没有找到任何有效的解决方案.有没有人找到一个有效的解决方案?
我正在使用Xamarin 4.6和Visual Studio 2017.
我正在使用 Firebase Cloud Messaging 实现推送通知,为此我在我的 AndroidManifest.xml 文件中添加了此代码
<!--FCM RECEIVER-->
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver"
android:exported="false"/>
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
<action android:name="com.google.android.c2dm.intent.REGISTRATION"/>
<category android:name="${applicationId}"/>
</intent-filter>
</receiver>
<!---FCM RECEIVER ENDS HERE-->
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行该应用程序时,它甚至在开始活动之前就抛出了该应用程序
Java.Lang.NoClassDefFoundError: 'Failed resolution of: Lcom/google/android/datatransport/runtime/dagger/internal/Factory;'
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我为此功能安装了两个 NuGet 包:
我试过了:
c# java android-manifest xamarin.android firebase-cloud-messaging
我在Mono For Android应用程序中序列化数据并使用REST将其发送到使用WCF监听的.NET服务器.到目前为止,这已经运行良好,但是,对于这个特定的数据合同,虽然服务器没有抛出任何错误,但数据合同中的列表显示为空.
使用Fiddler并使用相同的代码创建两个项目,我能够将正常的.NET DataContractSerializer输出与Mono的DataContractSerializer实现的输出进行比较.
.NET输出:
<VisitDataContractEx xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" xmlns="http://schemas.datacontract.org/2004/07/Organization.Project.DataContracts">
<_isDirty xmlns="http://schemas.datacontract.org/2004/07/Organization.DataContracts">true</_isDirty>
<_id xmlns:d2p1="http://schemas.datacontract.org/2004/07/Organization.Domain" xmlns="http://schemas.datacontract.org/2004/07/Organization.DataContracts">
<d2p1:internalValue>a7b97b48-d3a9-419d-9f4e-330ffc7a01ee</d2p1:internalValue>
</_id>
<_key xmlns="http://schemas.datacontract.org/2004/07/Organization.DataContracts">false</_key>
<_keyIdentifier xmlns="http://schemas.datacontract.org/2004/07/Organization.DataContracts">SurrogateKey</_keyIdentifier>
<ChecklistComplete>false</ChecklistComplete>
<Date>2013-03-05T15:43:49.5008406+02:00</Date>
<GpsAccuracy>1</GpsAccuracy>
<GpsLatitude>1</GpsLatitude>
<GpsLongitude>1</GpsLongitude>
<OrderComplete>false</OrderComplete>
<PhotoComplete>false</PhotoComplete>
<StockComplete>false</StockComplete>
<Sync>2013-03-05T15:43:49.5468406+02:00</Sync>
<checkListAnswers xmlns:d2p1="http://schemas.datacontract.org/2004/07/Organization.DataContracts">
<d2p1:_list>
<d2p1:IdentityDataReferenceOfCheckListAnswerDataContractExX8I0_S_SPU>
<d2p1:_dataContract z:Id="i2">
<d2p1:_isDirty>true</d2p1:_isDirty>
<d2p1:_id xmlns:d6p1="http://schemas.datacontract.org/2004/07/Organization.Domain">
<d6p1:internalValue>95ae919b-a389-4ea7-a009-af1b91890c36</d6p1:internalValue>
</d2p1:_id>
<d2p1:_key>false</d2p1:_key>
<d2p1:_keyIdentifier>SurrogateKey</d2p1:_keyIdentifier>
<Answer>false</Answer>
<checkListQuestion>
<d2p1:_dataContract i:nil="true" />
<d2p1:_description i:nil="true" />
<d2p1:_hasDataContract>false</d2p1:_hasDataContract>
<d2p1:_id xmlns:d7p1="http://schemas.datacontract.org/2004/07/Organization.Domain">
<d7p1:internalValue>176cbb31-7df2-4966-baa9-4e3cd2a0c6d5</d7p1:internalValue>
</d2p1:_id>
</checkListQuestion>
</d2p1:_dataContract>
<d2p1:_description i:nil="true" />
<d2p1:_hasDataContract>true</d2p1:_hasDataContract>
<d2p1:_id xmlns:d5p1="http://schemas.datacontract.org/2004/07/Organization.Domain">
<d5p1:internalValue>95ae919b-a389-4ea7-a009-af1b91890c36</d5p1:internalValue>
</d2p1:_id>
</d2p1:IdentityDataReferenceOfCheckListAnswerDataContractExX8I0_S_SPU>
</d2p1:_list>
</checkListAnswers>
<comments xmlns:d2p1="http://schemas.datacontract.org/2004/07/Organization.DataContracts">
<d2p1:_list />
</comments>
<directSalesAgent xmlns:d2p1="http://schemas.datacontract.org/2004/07/Organization.DataContracts">
<d2p1:_dataContract i:nil="true" /> …Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用VS2012使用Xamarin创建一个简单的Android应用程序.我知道有一种资源只用于字符串.在我的资源文件夹中,我有一个像这样的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="RecordsTable">records</string>
<string name="ProjectTable">projects</string>
<string name="ActivitiesTable">activities</string>
</resources>
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我想使用这些资源的值,如:
string recordTable = Resource.String.RecordsTable; //error, data type incompatibility
Run Code Online (Sandbox Code Playgroud)
我知道 Resource.String.<key>返回一个整数,所以我不能使用上面的代码.我希望recordTable变量的值为records.
有没有办法可以将这些资源字符串的值用于我的代码的字符串变量?
我们在Windows 8.1环境中使用最新的Xamarin在Visual Studio Enterprise上运行"Welcome to Xamarin"示例.
我们正在设法在Windows和Apple上构建和运行,但我们面临着Android的问题.
错误:
找不到引用的组件System.ObjectModel.
错误可以在下面的屏幕截图中看到:
我们已经尝试在线搜索解决方案,我们找到了一些,我们尝试过,但无济于事.
另一方面,Xamarin是否与Windows 8.1兼容?也许某些Android需求实际上需要Windows 10环境.
任何帮助,将不胜感激.