2016-07-29 2 views
0

최근 Android 용 데이터베이스로 Realm Database에 소개되었습니다. 그것은 SQLite에 비해 매우 쉬운 것 같아요, 나는 그것을 테스트하는 간단한 애플 리케이션을 만들었습니다. 데이터가 저장되고 있지만 어떤 이유로 든 데이터를 검색 할 수 없습니다. android에서 Realm의 데이터를 읽는 중 오류가 발생했습니다.


는 여기에 당신이 RealmConfiguration Realm.getInstance()에하지 getApplicationContext()을 통과해야 데이터
java.lang.UnsatisfiedLinkError: No implementation found for long io.realm.internal.TableView.nativeSync(long) (tried Java_io_realm_internal_TableView_nativeSync and Java_io_realm_internal_TableView_nativeSync__J)

+0

이 영역의 버전은 무엇입니까? Realm.getInstance (Context) 생성자가 ** 0.88.0 **에서 사용되지 않을 것이라 확신합니다. 최신 버전은 ** 1.1.0 ** – EpicPandaForce

답변

0

을 읽을 수있는 함수를 호출 할 때마다 오류가 우리에게 나타나는 MainActivity

package com.fayaz.realm; 

public class MainActivity extends AppCompatActivity { 


public Realm realm; 
Button btn; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    btn=(Button)findViewById(R.id.btn); 

    realm=Realm.getInstance(getApplicationContext()); 

    //WRITE 
    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      final EditText taskEditText = new EditText(MainActivity.this); 
      AlertDialog dialog = new AlertDialog.Builder(MainActivity.this) 
        .setTitle("Add a new task") 
        .setMessage("What do you want to do next?") 
        .setView(taskEditText) 
        .setPositiveButton("Add", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 

          String task = String.valueOf(taskEditText.getText()); 
          realm.beginTransaction(); 
          Person person=realm.createObject(Person.class); 
          person.setName(task); 
          Toast.makeText(getApplicationContext(),"ADDED",Toast.LENGTH_SHORT).show(); 
          realm.commitTransaction(); 
         } 
        }) 
        .setNegativeButton("Cancel", null) 
        .create(); 
      dialog.show(); 
     } 
    }); 

    //READ 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Execute the query: 
      RealmResults<Person> results = realm.where(Person.class).findAll(); 
      String name=results.toString(); 
      Toast.makeText(getApplicationContext(),name,Toast.LENGTH_SHORT).show(); 
     } 
    }); 
} 

@Override 
protected void onDestroy(){ 
    super.onDestroy(); 
    realm.close(); 
    } 
} 

입니다. 이런 식으로 보일 것입니다.

RealmConfiguration config = new RealmConfiguration.Builder(context) 
    .name("myrealm.realm") 
    .build(); 
Realm realm = Realm.getInstance(config); 
+0

에서 데이터를 가져 오는 방법을 알려주십시오. 영역, 나는 이것에 새롭다, 다만 축배를 만회하고 표시한다. 매우 도움이 될 것입니다. –

0

당신은 적어도 Realm 1.0.0으로 업데이트해야하지만, 최신 (글을 쓰는 시점에서이 Realm 1.1.1입니다).

Realm.getInstance(Context)을 사용하고 있습니다. 늦어도 정확하게 제거 된 번호는 0.91.0입니다.

이 영역의 최신 버전을 사용하려면, 당신은 당신의 프로젝트 수준 build.gradle에

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath "io.realm:realm-gradle-plugin:1.1.1" //this line 
    } 
} 

를이 추가, 안드로이드 스튜디오 및 Gradle을을 사용할 필요가 또한 당신은 모듈 -에 realm-android Gradle을 플러그인을 적용해야 단계 : 빌드 번호 :

apply plugin: 'com.android.application' 
apply plugin: 'realm-android' // this line 

오래된 버전의 오류에 대해 이야기 할 때는별로 중요하지 않습니다. 아마도 1 년 전에 고쳐 졌을 것입니다.

편집 :

//READ 
btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // Execute the query: 
     RealmResults<Person> results = realm.where(Person.class).findAll(); 
     if(!results.isEmpty()) { 
      Person person = results.get(0); 
      String name = person.getName(); 
      Toast.makeText(MainActivity.this, name, Toast.LENGTH_SHORT).show(); 
     }    
    } 
}); 
+0

고마워요, 영역에서 데이터를 검색하는 방법을 알려주세요. 제 경험에 비추어 볼 때, 축하합니다. 매우 도움이 될 것입니다. –

+0

이전 버전이기 때문에 이전 버전을 도울 수 없습니다. 그것이 어떤 버전인지 나는 확신하지 못한다. – EpicPandaForce

+0

방금 ​​새 종속성을 추가했습니다.이 버전을 알려줄 수 있습니다! –

관련 문제