1

我想我的Android應用程序與couchbase服務器連接在本地主機上 我已經初始化數據庫和經理如下:初始化數據庫我打電話startSync()函數接受型數據庫的參數後 同步的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 SED有關在Android應用中使用URL

當我運行在Android device.when我在模擬器上運行我的 應用程序的應用
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) 

這些錯誤occures它顯示的錯誤只是在詳細

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如果在同一網絡比URL上使用您的設備將要在Android應用程序 – Dhiraj

回答

0
給出消息

我上面與朋友 討論中提到了我的問題解決方案,我只是連我的筆記本電腦和Android手機在同一網絡(同時訪問服務器形式的本地主機這一點很重要),然後我在startSync()函數更改URL,如下所示:

http://192.168.1.17:4984/firstdb

192.168.1.17

這是我的筆記本電腦的IP地址和被監聽端口上sync_gateway要求只是讓這些簡單的更改上面的代碼,你將能夠使用sync_gateway在Android應用程序

+1

是的,這是我沒有當我無法連接同樣的事情。 – kirtan403

相關問題