标签: mvvmcross

Android App编译不生成包资源

在尝试编译我的Xamarin.Android应用程序时,我收到编译错误:

错误3文件"obj\Debug\android\bin\packaged_resources"不存在.MyApp.UI.Droid

我做了一些更改后发生了这个错误(添加了一些新类 - 不记得它是什么).但我没有更改任何项目设置,也没有删除文件obj夹中的实际文件.

导致此错误的原因是什么?如何解决此问题?

一些可能有用的信息:

  • 该项目是跨平台PCL项目 - 核心,Android和iOS项目
  • 该项目使用MVVM Cross

android mvvmcross xamarin

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

"ResolveLibraryProjectImports"任务意外失败

我有一个基于的Xamarin项目MvvmCross.该项目适用于iOS和Android.我在Visual Studio 15中打开了这个项目.我遇到了一些错误,我很快就解决了.有一些错误,即使在Google和Stackoverflow上搜索后也无法解决.我已经尝试了在Stackoverflow上找到的每个方法,但仍然存在所有剩余的错误.这个项目正在使用像RestSharp和BoxApi.V2这样的第三方库(更多)

我在下面发布我的错误日志.

Severity    Code    Description Project File    Line    Suppression State
Error       The "ResolveLibraryProjectImports" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load assembly 'RestSharp(Android), Version=0.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'RestSharp(Android).dll'
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName, ReaderParameters parameters)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.GetAssembly(String fileName)
   at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Extract(DirectoryAssemblyResolver res, ICollection`1 jars, ICollection`1 resolvedResourceDirectories, ICollection`1 resolvedAssetDirectories, ICollection`1 resolvedEnvironments)
   at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() BoxApi.V2 (Android)
Run Code Online (Sandbox Code Playgroud)

此解决方案中包含的所有项目都会重复此错误.所以我多次收到此错误.

我还想补充说,该项目以前是在MAC上构建的,而我正在使用Windows,这是否会产生一些兼容性或跨操作系统问题?我已检查所有装配参考,所有工作正常.

c# visual-studio xamarin.android mvvmcross xamarin

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

如何在mvvmcross视图模型中使用async?

我在mvvmcross viewmodel中有一个长时间运行的进程,并希望将其设置为异步(http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx).

Xamarin的测试版渠道目前支持async关键字.

下面是我目前如何实现异步的示例.IsBusy标志可以绑定到UI元素并显示加载消息.

这是正确的方法吗?

public class MyModel: MvxViewModel
{
    private readonly IMyService _myService;
    private bool _isBusy;

    public bool IsBusy
    {
        get { return _isBusy; }
        set { _isBusy = value; RaisePropertyChanged(() => IsBusy); ; }
    }

    public ICommand MyCommand
    {
        get
        {
            return new MvxCommand(DoMyCommand);
        }
    }

    public MyModel(IMyService myService)
    {
        _myService = myService;
    }

    public async void DoMyCommand()
    {
        IsBusy = true;
        await Task.Factory.StartNew(() =>
            {
                _myService.LongRunningProcess();
            });
        IsBusy = false;
    }

}
Run Code Online (Sandbox Code Playgroud)

c# async-await mvvmcross xamarin

26
推荐指数
2
解决办法
9534
查看次数

MVVMCross支持Xamarin.iOS故事板

由于支持iOS故事板的XS集成即将制作Stable流,我希望能够将此功能与MVVMCross结合使用.

从根本上说它似乎有点像它不应该工作,因为故事板指示视图项目中的导航层次结构,而不是像MVVMCross那样的视图模型项目.

但是,如果有办法使两者协同工作,那将是非常棒的.

有谁知道如何实现这一目标?

干杯,特里斯坦

mvvmcross xamarin

26
推荐指数
3
解决办法
7914
查看次数

MarkerClick有效,但InfoWindowClick无法打开ViewModel

以下MarkerClick实现工作,非常好.我可以打开其他View viaShowViewModel

View.cs

mMap.MarkerClick += MMap_MarkerClick;

private void MMap_MarkerClick(object sender, GoogleMap.MarkerClickEventArgs e)
{
   ViewModel.MapInfoSelected(e.Marker.Title);
}
Run Code Online (Sandbox Code Playgroud)

ViewModel.cs

public void MapInfoSelected(string name)
{
    ShowViewModel<StudentViewModel>(new { studentName = name});
}
Run Code Online (Sandbox Code Playgroud)

InfoWindowClick 不会触发打开其他视图.

View.cs

mMap.InfoWindowClick += MMap_InfoWindowClick;

private void MMap_InfoWindowClick(object sender, GoogleMap.InfoWindowClickEventArgs e)
{
  ViewModel.MapInfoSelected(e.Marker.Title);
}
Run Code Online (Sandbox Code Playgroud)

ViewModel.cs

public void MapInfoSelected(string name)
{
 // it hits here, but does not hit `StudentViewModel` Init() method, the app is frozen and do nothing
    ShowViewModel<StudentViewModel>(new { studentName = name});
}
Run Code Online (Sandbox Code Playgroud)

我甚至尝试了SetOnInfoWindowClickListener如下,它也没有打开视图.

 mMap.SetOnInfoWindowClickListener(this);

 public …
Run Code Online (Sandbox Code Playgroud)

android google-maps xamarin.android mvvmcross xamarin

24
推荐指数
1
解决办法
825
查看次数

对于Xamarin和MvvmCross,使用PCL配置文件158超过78是否有任何优点?

我正在开发一个针对iOS和Android的跨平台Xamarin应用程序,使用Stuart Lodge优秀的MvvmCross框架.

微软最近发布了他们的可移植类库BCL软件包的新版本,Stuart描述了如何在http://slodge.blogspot.com.au/2013/11/quick-run-through-using-pcls-中设置这些软件包.in.html.

当使用PCL配置文件158时,必须添加BCL异步包并进行一些调整以使iOS项目工作.

当使用PCL配置文件78时,这似乎自动工作,不需要BCL包.

为什么在配置文件78上使用配置文件158?

portable-class-library mvvmcross xamarin

19
推荐指数
2
解决办法
2715
查看次数

不要在主题中请求Window.FEATURE_ACTION_BAR并将windowActionBar设置为false以使用工具栏代替

当我将工具栏应用到我的应用程序中时,我遇到了这个问题,当我尝试运行app时它崩溃了.我使用了之前的所有帖子但没有运气.这是我的代码:

Style.xml

<style name="ToolBarStyle" parent="@style/Theme.AppCompat.Light">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>       

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

我试过parent ="@ style/Theme.AppCompat.Light.NoActionBar"但没有用.

Toolbar.xmal

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ToolBarStyle" />
Run Code Online (Sandbox Code Playgroud)

Manifest.axml

    <application android:label="Capzure" android:theme="@style/ToolBarStyle" android:icon="@drawable/Icon"></application>
Run Code Online (Sandbox Code Playgroud)

谢谢.

android toolbar mvvmcross

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

应用程序到Android模拟器的快速部署总是失败

我试图Use Fast Deployment在模拟器中快速测试我的Android应用程序.我这样做是因为,你可能知道,在模拟器上构建和测试应用程序是非常缓慢和非常令人沮丧的所以我需要加快速度.

PS:如果您对如何在30秒内在模拟器上部署和运行应用程序有任何建议,我将非常感激.我的应用程序很小很简单所以它不应该花费1.5分钟在模拟器上运行?

部署失败并给我错误:

Xamarin.AndroidTools.AndroidDeploymentException:
FastDevDirectoryCreationFailed at
Xamarin.AndroidTools.AndroidDeploySession.InstallAssemblies(String
destinationPath,CancellationToken token)
Xamarin.AndroidTools.AndroidDeploySession.WaitForRemoteDirCreation(String
destinationPath,CancellationToken token)
Xamarin.AndroidTools.AndroidDeploySession.FastDev(Boolean useExternal)
at位于Xamarin.AndroidTools.AndroidDeploySession.Start(CancellationToken
令牌)的
Xamarin.AndroidTools.AndroidDeploySession.RunLogged(CancellationToken
令牌)的
Xamarin.AndroidTools.AndroidDeploySession.Run(CancellationToken
令牌)

我该如何解决这个错误?并成功Use Fast Deployment并将其部署到模拟器?您如何加速Android模拟器部署和测试?

相关信息:

  • 在Windows 8.1 Surface Pro 2(4gb ram)上
  • 使用VS2013专业版
  • Android模拟器是Nexus(API 21)CPU = Intel ATOM x86.我正在使用它,因为Xamarin建议这样可以加快部署速度.
  • 该项目使用Xamarin和MVVM Cross

如果我使用Use Fast Deployment我没有部署错误部署到其他模拟器,但是当应用程序运行时,它会立即崩溃:Unfortunately 'app' has stopped

android android-emulator mvvmcross xamarin

16
推荐指数
1
解决办法
2386
查看次数

"GenerateJavaStubs"任务意外失败

我在Visual Studio中创建了一个新项目,只在.xml文件中放置(放置两个框架布局),当我调试代码时我有一个错误,请告诉我解决方案

Error   1   The "GenerateJavaStubs" task failed unexpectedly.
System.InvalidOperationException: Sequence contains no elements
at System.Linq.Enumerable.Max(IEnumerable`1 source)
at Xamarin.Android.Tools.TypeNameMapGenerator.WriteBinaryMapping(Stream o, Dictionary`2 mapping)
at Xamarin.Android.Tools.TypeNameMapGenerator.WriteJavaToManaged(Stream output)
at Xamarin.Android.Tasks.GenerateJavaStubs.UpdateWhenChanged(String path, Action`1 generator)
at Xamarin.Android.Tasks.GenerateJavaStubs.WriteTypeMappings(List`1 types)
at Xamarin.Android.Tasks.GenerateJavaStubs.Run()
at Xamarin.Android.Tasks.GenerateJavaStubs.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext()    TMS_TabletView.Droid
Run Code Online (Sandbox Code Playgroud)

android mvvmcross xamarin

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

如果我知道资源的名称,则返回资源的id

如果我知道资源的名称,我怎么能返回资源的id?

像这样的东西:

String mDrawableName = "myappicon";
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());
Run Code Online (Sandbox Code Playgroud)

c# mono xamarin.android mvvmcross

15
推荐指数
1
解决办法
4782
查看次数