2016-06-17 26 views
0

Я новичок в Xamarin Forms и Xamarin в целом. Возможно, я неправильно понимаю, как работает архитектура, или, может быть, я следую примеру разных примеров в Интернете. Я стараюсь использовать как можно больше Portable Class Library.Xamarin Forms Использование заявлений не доступно

Мои пакеты nuget: Xamarin.Forms и SQLite.Net-PCL. Они установлены на всех, Droid, ios, windows и PCL. Определенно, самая последняя проверенная самая высокая загрузка. Я следую за эти руководства

https://github.com/xamarin/xamarin-forms-samples/tree/2f6715c5a9dc0f057279d2b2c268e872eaa483bc/Todo/PCL

https://developer.xamarin.com/guides/xamarin-forms/working-with/databases/

На SQLite_Droid реализации интерфейса SQLite, у меня нет доступа к Xamarin.Forms, используя оператор или тот, который имеет интерфейс, Здесь весь код в проекте Native_PCL.

ISQLite.cs

using SQLite.Net; 

namespace Native_PCL.DataServices 
{ 
    interface ISQLite 
    { 
     SQLiteConnection GetConnection(); 
    } 
} 

DataCalls.cs

using System.Linq; 
using SQLite.Net; 
using Xamarin.Forms; 
using Native_PCL.Data; 

namespace Native_PCL.DataServices 
{ 
    public class DataCalls 
    { 
     static object locker = new object(); 

     SQLiteConnection db; 

     public DataCalls() 
     { 
      db = DependencyService.Get<ISQLite>().GetConnection(); 

      db.CreateTable<UserPreferences>(); 
      db.CreateTable<Orders>(); 
     } 

     public void SubmitData(Orders order, out string update) 
     { 
      lock (locker) 
      { 
       if (!db.Table<Orders>().Any(x => x.foodName == order.foodName)) 
       { 
        db.Insert(order); 
        update = order.foodName; 
       } 
       else { update = order.foodName + " was already in your Order"; } 
      } 
     } 
    } 
} 

Вот весь код в проекте Native_PCL.Droid

SQLite_Droid.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

using Android.App; 
using Android.Content; // for some reason all of the System. and Android. are showing white. Usually unused statements are grayed out! 
using Android.OS; 
using Android.Runtime; 
using Android.Views; 
using Android.Widget; 

using Native_PCL; 
using Native_PCL. ; /// only .Droid is registering 
using Xamarin.Forms; //Intellisense does not pick this up 


namespace Native_PCL.Droid.DataImplement 
{ 
    public class SQLite_Droid : Native_PCL.DataServices.ISQLite /// All white, Doesn't register the ISQLite as an Interface. 
    { 
    } 
} 

Я воссоздал весь проект. Я должен делать что-то совершенно неправильное.

ответ

1

После того, как вытащил большую часть моих волос, мне пришлось подумать, что это не может быть я. Я собрал и было несколько ошибок. Я решил пойти в MainActivity.cs в решении для Android. оказывается, что свежий проект котловой плиты не нашел App. Вот шаги для решения моей проблемы.

  1. перейти к /Users/XXXXXX/AppData/Local/Xamarin Я удалил все папки для журнала и молний, ​​за исключением, я удалил архивный файл в папке почтового индекса, хотя.

  2. Перейти к обозревателю решений, щелкните правой кнопкой мыши по решению и Clean Solution.

  3. Удалена ссылка на проект Portable Class library из проекта Android.
  4. Скомпилировано основание Portable Class library проект.
  5. Добавлена ​​ссылка на проект Android.

Урок истории: если у вас когда-либо были проблемы с intellisense, которые не собирают ссылки, которые должны быть там, выполните шаги 2, 3, 4, 5. И поскольку это Xamarin и включает в себя эмуляторы и кросс-совместимость, выполните шаг 1.