2016-07-26 3 views
1

Android Studio에서 CouchBase를 설정하려면 instruction을 따르고 있습니다.CouchBase - Android Studio에서 JavaContext를 찾을 수 없음

문제는 JavaContext이 존재하지 않는 것입니다. 왜 그런가?

private void test(){ 
     // Enable logging 
     Logger log = Logger.getLogger("app"); 
     log.setLevel(Level.ALL); 
     // JavaContext context = new JavaContext(); 

     // Create a manager 
       Manager manager = null; 
       try { 
        manager = new Manager(new AndroidContext(getApplicationContext()), Manager.DEFAULT_OPTIONS); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
     // Create or open the database named app 
       Database database = null; 
       try { 
        database = manager.getDatabase("app"); 
       } catch (CouchbaseLiteException e) { 
        e.printStackTrace(); 
       } 
     // The properties that will be saved on the document 
       Map<String, Object> properties = new HashMap<String, Object>(); 
       properties.put("title", "Couchbase Mobile"); 
       properties.put("sdk", "Java"); 
     // Create a new document 
       Document document = database.createDocument(); 
     // Save the document to the database 
       try { 
        document.putProperties(properties); 
       } catch (CouchbaseLiteException e) { 
        e.printStackTrace(); 
       } 
     // Log the document ID (generated by the database) 
     // and properties 
     log.info(String.format("Document ID :: %s", document.getId())); 
     log.info(String.format("Learning %s with %s", (String) document.getProperty("title"), (String) document.getProperty("sdk"))); 
    } 

누군가가 잘못 무엇인지 설명 할 수 :이 코드가 작동하는 것을 발견 주위에 몇 가지 연주 후

:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
     applicationId "com.woxthebox.draglistview.sample" 
     minSdkVersion 11 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    // workaround for "duplicate files during packaging of APK" issue 
// see https://groups.google.com/d/msg/adt-dev/bl5Rc4Szpzg/wC8cylTWuIEJ 
    packagingOptions { 
     exclude 'META-INF/ASL2.0' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/NOTICE' 
    } 
} 

repositories { 
    jcenter() 
    maven { 
     url "http://files.couchbase.com/maven2/" 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile project(':library') 
    compile 'com.android.support:appcompat-v7:23.3.0' 
    compile 'com.android.support:cardview-v7:23.3.0' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    //compile 'com.android.support:appcompat-v7:22.1.1' 
    compile 'com.couchbase.lite:couchbase-lite-android:1.3.0' 
} 

편집 : 여기

private void test(){ 
    // Enable logging 
    Logger log = Logger.getLogger("app"); 
    log.setLevel(Level.ALL); 
    JavaContext context = new JavaContext(); // THIS LINE DOES NOT COMPILE 
    // Create a manager 
      Manager manager = null; 
      try { 
       manager = new Manager(context, Manager.DEFAULT_OPTIONS); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
    // Create or open the database named app 
      Database database = null; 
      try { 
       database = manager.getDatabase("app"); 
      } catch (CouchbaseLiteException e) { 
       e.printStackTrace(); 
      } 
    // The properties that will be saved on the document 
      Map<String, Object> properties = new HashMap<String, Object>(); 
      properties.put("title", "Couchbase Mobile"); 
      properties.put("sdk", "Java"); 
    // Create a new document 
      Document document = database.createDocument(); 
    // Save the document to the database 
      try { 
       document.putProperties(properties); 
      } catch (CouchbaseLiteException e) { 
       e.printStackTrace(); 
      } 
    // Log the document ID (generated by the database) 
    // and properties 
    log.info(String.format("Document ID :: %s", document.getId())); 
    log.info(String.format("Learning %s with %s", (String) document.getProperty("title"), (String) document.getProperty("sdk"))); 
} 

내 Gradle을하다 원래 지침?

+1

내가 카우치베이스 주식회사의 문서와 빈약 한 경험을 가지고있는 (겉으로는 올바른) 여기를 참조하십시오. Github 프로젝트에 따르면 JavaContext는 마스터 브랜치에도 존재하지 않는다고합니다. 그래서 여기에서 시도해보십시오. http://developer.couchbase.com/documentation/mobile/1.2/develop/training/build-first-android-app/starter-code-android/index.html –

+2

사과드립니다. 오늘 https :// /github.com/couchbaselabs/couchbase-mobile-portal/commit/84713c4ed1659c365f06b9c7df41cb2b0778f50e 이제 게시해야합니다. – jamiltz

답변

2

원래 지침에 무엇이 잘못되었는지 설명 할 수 있습니까?

아마도 설명서를 작성한 사람은 누구나 Android Couchbase Lite에 대해 AndroidContext을 알지 못했습니다.

반면 표준 Java (포함) 프로젝트의 경우 실제로는 JavaContext입니다.

Github의 Getting Started 코드는 실제로 AndroidContext을 사용하므로 페이지가 잘못되었습니다.

Couchbase Android - Getting Started Guide

+0

감사합니다. 좋은 교훈입니다. 문서에주의하십시오 ... – jhegedus

+0

문서가 업데이트되었습니다. – Hod