标签: xamarin.android

任何人都有跨平台WP7 Android iOS移动开发架构的经验(monotouch,monodroid,C#)

这个问题与推荐的架构和人们以前分别使用C#,Monotouch和Monodroid开发的跨平台WP7,iOS,Android应用程序的体验有关.我在这里,这里这里都研究过以前的问题.他们提供了很好的答案,但不是我想要的.我也发现这个优秀的问题确实涉及成本效益,因此存在一些重叠.

我需要为健康和健身公司开发一个跨平台的iPhone/iPad,WP7和Android应用程序,它将与他们的网站集成.当网络可用时,该应用程序需要少量本地数据存储用于离线模式和与网站同步.我是一个Windows(C#/ C++)开发人员,并且不想真正想要沿着三个Objective C,Java和C#应用程序的路线走下去,尽管我会这样做.我还将担任技术主管,并为该项目的团队开展一些工作.

我想知道是否有人在使用Monotouch,Monodroid和WP7进行跨平台开发方面的经验,并分享他们在应用程序架构方面的经验,以尽可能多地重用代码.我正在考虑的架构如下:

建议的Wp7,Monotouch,Monodroid应用程序的架构

我的问题如下:

  • 这里有人试过这样的事吗?
  • 这些框架(Monotouch,monodroid)是否值得为这种工作加盐?
  • 我可以在Visual Studio 2010中使用Monotouch,Monodroid和Wp7目标的单独项目(dlls/exe)设置整个项目(但使用"Add as Link"共享代码)?
  • 我可以通过这个(或类似的)架构实际期望什么样的代码重用?即我可以使用哪些策略/模式来重用本地数据访问,Web服务和业务逻辑?

最好的祝福,

c# mobile xamarin.ios windows-phone-7 xamarin.android

47
推荐指数
3
解决办法
5895
查看次数

Xamarin Android - 如何重建Resource.designer.cs

在Xamarin Android中 - 如何重新生成Resource.designer.cs

我试图将所有XML文件的Build Action标记为"AndroidResource",并且仍然不会使用新值更新Resource.designer.cs.

什么事件触发生成此文件?

xamarin.android xamarin xamarin-studio

46
推荐指数
5
解决办法
4万
查看次数

MonoDroid:调用自定义视图的构造函数时出错 - TwoDScrollView

我正在构建一个Android应用程序,它使用在此处找到的自定义构建的TwoDScrollView:

http://blog.gorges.us/2010/06/android-two-dimensional-scrollview/

可以在其他几个网站上找到同一个类,Stack Overflow上的其他人也提出了有关它的问题.我在以前使用Java/Eclipse构建的Android应用程序中使用它,并且我取得了成功.

在我目前的应用程序中,我想使用C#和MonoDroid.我决定用C#重写整个TwoDScrollView类.在重写它,然后在一些布局XML中使用它之后,我在尝试运行我的代码时遇到以下异常:

抛出了System.NotSupportedException.无法从本机句柄44f4d310激活MyProject.TwoDScrollView类型的实例.

System.Exception:找不到MyProject.TwoDScrollView ::.ctor(System.IntPtr,Android.Runtime.JniHandleOwnership)......的构造函数......后面有更多文本....

我的布局XML如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<myproject.TwoDScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

</myproject.TwoDScrollView>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

根据以下链接中有关在MonoDroid中使用布局XML中的自定义视图的说明:http://docs.xamarin.com/android/advanced_topics/using_custom_views_in_a_layout

TwoDScrollView类的构造函数如下所示:

public TwoDScrollView(Context context) 
    : base(context)
{
    initTwoDScrollView();
}

public TwoDScrollView(Context context, IAttributeSet attrs) 
    : base(context, attrs)
{
    initTwoDScrollView();
}

public TwoDScrollView(Context context, IAttributeSet attrs, int defStyle) 
    : base(context, attrs, defStyle)
{
    initTwoDScrollView();
}
Run Code Online (Sandbox Code Playgroud)

C#版本中存在与Java版本相同的构造函数(可以在上面的链接中找到).什么可能出错?如果有人想看,我可以发布我的TwoDScrollView的完整C#代码.除了用C#重写之外,它基本上与位的Java代码位相同.

谢谢你的帮助!

android scrollview android-custom-view android-layout xamarin.android

45
推荐指数
3
解决办法
3万
查看次数

如何在Mac上启动Xamarin Studio的多个实例(Visual Studio for Mac)?

我想同时运行多个Xamarin Studio副本.一旦运行一个副本,双击Xamarin Studio图标/Applications或单击当前正在运行的Dock图标只会将当前的图标带到前台.

macos xamarin.ios xamarin.android xamarin.mac xamarin-studio

45
推荐指数
1
解决办法
1万
查看次数

警告主要版本52比51更新,这是此编译器支持的最高主要版本

基本上我是超级新手,并开始在IT公司实习.我用Xamarin安装了VS. 我面临的问题非常令人沮丧.所以即使我创建空项目我也无法编译它并得到如下错误:

严重级代码说明项目文件行抑制状态警告主要版本52比51更新,这是此编译器支持的最高主要版本.

我搜索了整个谷歌并问了这么多人,仍然没有解决我的问题.如果有人可以通过skype或teamwiever帮助我,我会非常感激.我的Skype:toniterdal,随时加我.

visual-studio xamarin.android xamarin

45
推荐指数
4
解决办法
3万
查看次数

可以在Linux上运行Xamarin Mono吗?

我想知道是否可以在Ubuntu上运行Xamarin.我不喜欢java,所以我想用C#制作Android应用程序.

是Ubuntu的一个包,因为到目前为止我还没有见过一个?

要么...

我可以使用Wine在Ubuntu上运行Xamarin吗?

要么...

是否有在Ubuntu上运行的替代软件(具有相同的功能)?

c# mono android xamarin.android

44
推荐指数
2
解决办法
2万
查看次数

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

是否有更精确配置proguard的地方?还有其他想法吗?

这是失败日志:

java.io.IOException:无法读取[/Library/Frameworks/Xamarin.Android.framework/Versions/7.0.0-18/lib/xbuild-frameworks/MonoAndroid/v7.0/mono.android.jar](可以在proguard.InputReader.readInput中的proguard.InputReader.readInput(InputReader.java:230)处理类[android/app/ActivityTracker.class](不支持的类版本号[52.0](最大51.0,Java 1.7))) InputReader.java:200)在proguard.InputReader.readInput(InputReader.java:178)的proguard.InputReader.exe执行(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 progPard.readFiles(DirectoryPump.java:65)中的progPard.EndoryPump.pumpDataEntries(DirectoryPump.java:53)中的yPump.readFiles(DirectoryPump.java:65)... 6更多引起者: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错误

xamarin.android xamarin android-proguard

44
推荐指数
1
解决办法
3万
查看次数

在为Android项目构建Mono时,"aapt.exe"退出了代码1

我整理了一个相当简单的Mono for Android应用程序,它只是在后台服务中播放"AndroidResource"MP3(复制自Greg Shackles最新的Visual Studio Magazine关于MfA中后台服务的文章).我把代码放在一起,使用我自己的自定义MP3文件,并尝试构建它,只是为了得到这个可爱的错误.

"aapt.exe" exited with code 1
Run Code Online (Sandbox Code Playgroud)

这是错误列表和构建输出日志中的唯一信息.

c# android xamarin.android aapt

40
推荐指数
4
解决办法
2万
查看次数

Xamarin表示android应用程序没有获取DeviceToken Parse SDK

我正在为Android和iOS开发xamarin表单应用程序.我正在使用Parse SDK实现PushNotifications.我在.iOS项目的参考文献中引用了.Droid项目和Parse.iOS dll中添加了Parse.Android dll.我的问题有时在Android上我无法检索DeviceToken.解析安装类中没有DeviceToken和pushtype的条目.它的值是"未定义的".下面是我的代码以及清单.

public  async void RegisterForPushNotifications ()
    {
        try {
            if (Utility.isNetworkConnected ()) {
                await ParsePush.SubscribeAsync ("");
                var installation = ParseInstallation.CurrentInstallation;
                // I'm saving the DeviceToken in App.regId for future uses
                App.regId = System.String.IsNullOrWhiteSpace (installation.DeviceToken) ? "" : installation.DeviceToken;
                ParsePush.ParsePushNotificationReceived += PushNotificationReceived;
            }
        } catch (ParseException e) {
            System.Diagnostics.Debug.WriteLine (e.StackTrace);
        } catch (Java.Lang.Exception e) {
            e.PrintStackTrace ();
        }
    }
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.nirvaniclabs">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="23" />
<application android:label="RxLifetime" android:icon="@drawable/icon" android:largeHeap="true">
    <receiver android:name="parse.ParsePushBroadcastReceiver" …
Run Code Online (Sandbox Code Playgroud)

c# android xamarin.android parse-platform xamarin.forms

40
推荐指数
1
解决办法
981
查看次数

在Xamarin中使用本地数据库

我已经开始使用Visual Studio的Xamarin插件来创建一个Android应用程序.

我有一个本地SQL数据库,我想调用它来显示数据.我不明白我怎么做到这一点.可能吗?

sqlite android local-database xamarin.android xamarin

39
推荐指数
1
解决办法
3万
查看次数