适用于Android的Xamarin编译器灰色显示

时间:2016-01-12 11:59:49

标签: android ios xamarin

我正在尝试在Xamarin上制作新应用,第一次使用它并遇到问题。

我将其设置为:

  1. 跨平台
  2. 单一视图
  3. 目标平台 - iOS和Android
  4. 共享库
  5. 我遇到的问题是,在共享部分的Database类中,编译条件的Android部分未被读取。 无论我输入什么内容都是灰色的,我输入时没有得到预测文本功能。 我在线阅读教程,但无法找到解决方案。

    using System;
    using System.IO;
    
    #if __IOS__
    using Foundation;
    #endif
    
    namespace NoteTaker2
    {
        public class Database
        {
            public Database ()
            {
            }
    
            public static string documentsFolder () {
                string path;
    
                #if __IOS__
                path = NSFileManager.DefaultManager.GetUrls (NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User) [0].Path;
                #endif
    
                #if __ANDROID__
                path = Android.App.Application.Context.getExternalFilesDir(null).AbsolutePath; // This line greyed out
                #endif
    
                Directory.CreateDirectory(path);
                return path;
            }
        }
    }
    

2 个答案:

答案 0 :(得分:3)

想出来。我必须在iOS和Android之间切换以检查并获取代码/方法帮助器功能。 在项目的左上角,选择并在两者之间切换。 不是单独的iOS或Android文件夹中的情况,只是在共享中。

enter image description here

答案 1 :(得分:0)

如果代码显示为灰色,则表示编译器忽略了代码,并且不会将其添加到构建中。

在这种情况下,可能发生的事情是您没有定义_IOS__ANDROID_常量。您可以在构建配置(右键单击项目 - >属性 - >构建 - >条件编译符号)中定义这些常量,或使用#define预处理器指令在源代码中定义它们。 / p>

using System;
using System.IO;

#define __IOS__