1

Я пытаюсь соединить мой андроид приложение с couchbase сервером на локальном хосте Я инициализируюсь базы данных и менеджер следующим образом: после инициализации базы данных я вызываю функцию startSync() принимающая параметр базы данных типаSync Android приложения для couchbase сервера на локальном хост

    public static final String DB_NAME = "firstdb"; 
        public static final String TAG = "firstdb";private void helloCBL() { 
         Manager manager = null; 
         Database database = null; 
         try { 
          manager = new Manager(new AndroidContext(this), Manager.DEFAULT_OPTIONS); 
          database = manager.getDatabase(DB_NAME); 
          database.addChangeListener(this); 
          startSync(database); 

         } catch (Exception e) { 
          Log.e(TAG, "Error getting database", e); 
          return; 
         } 

        } 

Это функция startSync()

  protected void startSync(Database database) { 
         URL syncUrl; 
        try { 
         syncUrl = new URL("http://10.0.2.2:4984/firstdb"); 
        } catch (MalformedURLException e) { 
         throw new RuntimeException(e); 
        } 


        Replication pullReplication = database.createPullReplication(syncUrl); 
        pullReplication.setContinuous(true); 

        Replication pushReplication = database.createPushReplication(syncUrl); 
        pushReplication.setContinuous(true); 

        pullReplication.addChangeListener(this); 
        pushReplication.addChangeListener(this); 


        // start both replications 
        pullReplication.start(); 
        pushReplication.start(); 

       } 

но собирающие ошибки мой LogCat выглядит следующим образом: Я confu СЕПГ об использовании URL в приложении для Android

12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest: io exception. url: http://10.0.2.2:4984/firstdb/_local/2b7e37db76812fef1b8c7ca3d4b30b99e570ea6f 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest: org.apache.http.conn.ConnectTimeoutException: Connect to /10.0.2.2:4984 timed out 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at com.couchbase.lite.support.RemoteRequest.executeRequest(RemoteRequest.java:184) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at com.couchbase.lite.support.RemoteRequest.run(RemoteRequest.java:103) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
    12-10 02:36:16.930 4556-4588/com.couchbase.examples.couchdbapp E/RemoteRequest:  at java.lang.Thread.run(Thread.java:856) 

Этих ошибок, когда я встречается, запустить приложение на андроид device.when я запустить мое приложение на эмуляторе он ничего не показывает ошибочный, но выдает сообщение в многословной

12-10 13:13:03.482 3718-3770/com.couchbase.examples.couchdbapp W/Sync: [email protected]: Received invalid doc ID from _changes: {seq=1, id=_user/, changes=[{rev=}]} 
+0

Похоже на проблему с сетью. В зависимости от того, как вы запускаете приложение, ip 192.168.1.6 может быть недоступен. Например, если вы используете приложение в эмуляторе по умолчанию, ip хоста - 10.0.2.2. –

+0

@LaurentDoguin Я не запускаю свое приложение в эмуляторе, я запускаю его на устройстве Android – Dhiraj

+0

@LaurentDoguin, и я полностью смущен URL-адресом, который будет использоваться в приложении Android. – Dhiraj

ответ

0

У меня есть решение для моей проблемы, упомянутое выше, с обсуждением с друзьями. Я просто подключил свой ноутбук и телефон Android к той же сети (важно при доступе к серверной форме localhost), тогда я изменил URL-адрес в моей функции startSync() следующим образом :

http://192.168.1.17:4984/firstdb

192.168.1.17

Это IP-адрес моего ноутбука и является порт прослушивания, чтобы запросить на sync_gateway Просто делать эти простые изменения в коде выше вы будете иметь возможность использовать sync_gateway в приложении для Android

+1

Да, это было то же самое, что и я, когда мне не удалось связаться. – kirtan403

 Смежные вопросы

  • Нет связанных вопросов^_^