Tag: xamarin

在Xamarin中使用本地数据库

我已经开始使用Visual Studio的Xamarin插件来创build一个Android应用程序。 我有一个本地的SQL数据库,我想调用它来显示数据。 我不明白我能做到这一点。 可能吗?

在Xamarin.Forms中将默认的黑暗Android主题更改为白色?

Xamarin.Forms确实生成一个灰色的Android应用程序。 我想在Android中有一个浅/白色的主题 (如在iOS目标中)。 一个简单的切换方式存在吗?

如何在使用Xamarin for Visual Studio的真实Android设备上进行debugging?

我find了几个链接,但是他们没有解释这是如何完成的。 我可以使用Xamarin Studio IDE进行debugging,但是与Visual Studio相比,IDE(没有冒犯性)是蹩脚的。 使用Visual Studio,似乎只能select一个模拟器进行debugging。 那么如何通过USB在我的真实设备上debugging它(我已经有了USB Debugging = true)呢?

Xamarin iOS内存无处不在

我们在过去的8个月里一直在使用Xamarin iOS,并开发了一个具有许多屏幕,function,嵌套控件的非平凡的企业应用程序。 我们已经做了我们自己的MVVM拱门,跨平台BLL&DAL“推荐”。 我们在Android之间共享代码,甚至在我们的networking产品上使用BLL / DAL。 除了现在在项目的发布阶段,我们发现在Xamarin基于iOS的应用程序中无处不在的内存泄漏。 我们已经遵循了所有的“准则”来解决这个问题,但现实情况是,C#GC和Obj-C ARC似乎是不兼容的垃圾收集机制,它们以目前的方式互相叠加在单点触摸平台上。 我们发现的现实是,对于任何非平凡的应用程序,本机对象和被pipe理对象之间的硬周期将会发生,并且频繁出现。 例如,在使用lambdaexpression式或手势识别器的任何地方发生这种情况都非常容易。 加上MVVM的复杂性,这几乎是一个保证。 错过其中的一种情况,整个对象的graphics将永远不会被收集。 这些图表会引诱其他物体并像癌症一样长大,最终导致iOS的迅速和无情的消灭。 Xamarin的回答是对这个问题毫无兴趣的推迟,以及“开发者应该避免这些情况”的不切实际的期望。 仔细考虑这一点,可以看出这是垃圾收集在Xamarin中基本上被破坏了 。 现在我认识到,在传统的c#.NET意义上,你并不真正在Xamarin iOS中获得“垃圾收集”。 你需要雇用“垃圾维护”模式,实际上是让GC移动并完成工作,即使这样,它也永远不会是完美的 – 不确定性。 我的公司投入了大量资金,试图阻止我们的应用程序崩溃和/或内存不足。 我们基本上必须明确地recursion处理每一个该死的东西,并在应用程序中实施垃圾维护模式,只是为了停止崩溃,并有一个可行的产品,我们可以出售。 我们的客户是支持和宽容的,但我们知道这不能永远持续下去。 我们希望Xamarin有一个专门的团队在这个问题上工作,并一劳永逸。 不幸的是,看起来不像。 问题是,我们的经验是用Xamarin编写的非平凡企业级应用程序的例外规则吗? UPDATE 请参阅DisposeEx方法和解决scheme的答案。

Xamarin.Forms是否可以使用Xamldevise器或智能感知?

Xamarin 3.0引入了Xamarin.Forms ,这是一个强大的UI抽象,允许开发人员轻松创build可在Android,iOS和Windows Phone上共享的用户界面。 它看起来非常强大,但我面临一些困难,创buildUI为Xamarin.Forms带有超过40个控件。 如果没有智能感知或简约devise师,在官方文档中search所有属性或浏览c#代码是相当不利的。 默认的Xaml teamplate是这样的,显然不需要任何帮助就可以添加新的控件。 <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="App1.Class1"> <Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" /> </ContentPage> 那么有没有机会在Xaml内部具有智能感知或者使用Xamldevise师?

Xamarin.Android Proguard – 不受支持的类版本号52.0

我试图在我的Xamarin.Android项目中使用Proguard,但编译失败,错误Unsupported class version number [52.0] (maximum 51.0, Java 1.7) 我从这两个 问题中看到,它可能是Java 7和Java 8之间的不匹配,更确切地说,某些版本的proguard不支持Java 8.但是,在Xamarin首选项 – > SDK位置中,Java SDK指向JDK 7: /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home 有什么地方可以更精确地configurationproguard吗? 任何其他的想法? 这里是失败日志: java.io.IOException:无法读取[/Library/Frameworks/Xamarin.Android.framework/Versions/7.0.0-18/lib/xbuild-frameworks/MonoAndroid/v7.0/mono.android.jar](Can在proguard.InputReader.readInput(InputReader.java:230)at proguard.InputReader.readInput()方法类[android / app / ActivityTracker.class](不支持的类版本号[52.0](最大51.0,Java 1.7))) InputReader.java:200)在proguard.InputReader.readInput(InputReader.java:178)在proguard.InputReader.execute(InputReader.java:78)在proguard.ProGuard.readInput(ProGuard.java:196)在proguard.ProGuard。执行(ProGuard.java:78)在proguard.ProGuard.main(ProGuard.java:492)导致:java.io.IOException:无法处理类[android / app / ActivityTracker.class](不支持的类版本号[ 52.0](最大51.0,Java 1.7))在proguard.io.ClassReader.read(ClassReader.java:112)在proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)在proguard.io.JarReader.read(JarReader .java:65)在proguard.io.Director ypump.readFiles(DirectoryPump.java:65)在proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)在proguard.InputReader.readInput(InputReader.java:226)… 6 more引起:java.lang。 UnsupportedOperationException:在proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:88)上的proguard.classfile.util.ClassUtil.checkVersionNumbers(ClassUtil.java:140)处的不支持的类版本号[52.0](最大值51.0,Java 1.7)在proguard.classfile.ProgramClass.accept(ProgramClass.java:346)在proguard.io.ClassReader.read(ClassReader.java:91)… 11更多 9警告1错误(s)

Xamarin.Forms – 创build一个新页面时,InitializeComponent不存在

我正在使用Visual Studio来试用Xamarin.Forms。 我正在尝试遵循指南: http : //developer.xamarin.com/guides/cross-platform/xamarin-forms/xaml-for-xamarin-forms/getting_started_with_xaml/ 简而言之,我使用PCL创build一个Xamarin.Forms解决scheme,然后尝试将一个Forms XAML Page添加到PCL项目中。 被创build的代码隐藏看起来像这样: public partial class Page1 : ContentPage { public Page1() { InitializeComponent(); } } 这里的问题是InitializeComponent(); 是红色的。 当我尝试构build时,我得到通知The name 'InitializeComponent' does not exist in the current context 我一直在寻找解决scheme,即使其他人也有同样的麻烦,他们的解决scheme不会为我工作。 以下是我尝试使用的一个build议: http : //blog.falafel.com/xamarin-error-initializecomponent-does-not-exist-in-the-current-context/ 请让我知道,如果你有这个问题的解决scheme。 谢谢! 更新: 我的PCL(这也是我想要添加我的XAML页面的地方)包含: App.cs: public class App : Application { public App() { // […]

用Xamarin for Linux开发

是否有可能使用相同的代码库开发和构buildXamarin的Linux应用程序? Ubuntu几年后,我的主要操作系统现在是Windows。 但是,这不是不可能的,我可以切换到Mac。 Rigth现在我有一些Qt的经验,没有Xamarin的经验。 使用Qt,您可以在Windows,Linux和Mac以及Windows,Linux,Mac,iOS,Android,Windows Mobile …下进行开发。 由于Xamarin现在是免费和开源的,而且我在Qt方面还没有太多的经验,所以我正在考虑尝试Xamarin进行跨平台开发,而不是Qt。 不能发布我的Linux软件将是一个打击我的。 能够在Linux下开发会很好,但可选。 但毕竟我的谷歌研究,我只能find信息和人要求支持开发在Linux下,而不是在Linux。 据我所知,Mono本身不应该是一个问题。 但据我所知,Xamarin> Mono,我没有得到Mono的一切,我可以进入Xamarin。 我也不确定未来Mono的支持程度如何。 对我来说,看起来Xamarin对于微软来说比Mono本身更重要。 我不确定是否有可能,因为Xamarin是基于Mono的,但是有可能,微软在某种程度上是否像Xamarin一样支持不支持Mono的.NET兼容性,甚至完全取消Mono? 所以我正在寻找一个可以依赖的桌面和移动平台的单一框架,我想知道Xamarin和/或Mono和/或Xamarin + Mono是否可以替代Qt,然后再深入到任何这两个解决scheme。

未select此项目解决schemeconfiguration的项目

错误: >—— Skipped Deploy: Project: DrawShape.Android, Configuration: Debug Any CPU —— >Project not selected to build for this solution configuration configurationpipe理器中的configuration似乎是正确的: 这是我正在尝试构build的项目的代码: https://github.com/chrispellett/Xamarin-Forms-Shape 我到目前为止所尝试的: 从任何CPU更改为x86和回。 将生成checkbox设置为false,然后返回true。

Android应用程序编译不生成包资源

当试图编译我的Xamarin.Android应用程序时,我得到了编译错误: 错误3文件“obj \ Debug \ android \ bin \ packaged_resources”不存在。 MyApp.UI.Droid 这个错误发生在我做了一些修改之后(添加了一些新的类 – 不记得它是什么)。 但是我没有更改任何项目设置,也没有删除obj文件夹中的实际文件。 这个错误的原因是什么,我该如何解决这个问题? 一些可能有用的信息: 该项目是一个跨平台PCL项目 – 核心,Android和iOS项目 该项目使用MVVM Cross