android studio在使用realm数据库时无法编译

时间:2016-07-30 14:19:12

标签: android realm

我想在我的应用程序中使用realm数据库,因为我将此行添加到app中的build.gradle文件

apply plugin: 'realm-android'
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "io.realm:realm-gradle-plugin:1.1.0"
    }
}

这是我的表格代码:

public class Country extends RealmObject {
@Ignore
public static String NAME="name";
@Ignore
public static String POPULATION="population";
@PrimaryKey
private String name;
private int population;

public Country() { }

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getPopulation() {
    return population;
}

public void setPopulation(int population) {
    this.population = population;
}

}     

但是当我使用这段代码而没有别的时候"我的意思是永远不要使用国家表"运行我的应用程序时出现此错误:

An exception has occurred in the compiler (1.8.0_05). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport)  after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report.  Thank you.
 com.sun.tools.javac.code.Symbol$CompletionFailure: class file for rx.Observable not found
 Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
  

编译失败;请参阅编译器错误输出以获取详细信

我的app.gradle文件

apply plugin: 'com.android.application'
apply plugin: 'realm-android'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
    applicationId "com.sss.ddd"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    repositories {
        maven { url "https://jitpack.io" }
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'

}

这是我的project.gradle文件

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.1.2'
    classpath "io.realm:realm-gradle-plugin:1.1.0"
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}


task clean(type: Delete) {
delete rootProject.buildDir
}
是谁能帮助我呢? 谢谢。

3 个答案:

答案 0 :(得分:5)

非常感谢您的关注,但我找到了解决办法 我将这些行添加到我的项目Gradle文件中:

allprojects {
repositories {
    jcenter()
    maven {
        url 'https://github.com/uPhyca/stetho-realm/raw/master/maven-repo'
    }

}
}

这是我的app gradle文件

compile 'com.uphyca:stetho_realm:0.9.0'
compile 'io.reactivex:rxjava:1.1.0'
compile 'com.facebook.stetho:stetho:1.3.1'

我不知道为什么我应该添加这些行,而领域文档从不参考这个但是知道我的项目工作正常 我知道这是有线行为,但它的工作 如果你知道更好的答案,请与我分享。

答案 1 :(得分:1)

将JDK更新到版本1.8.3解决了这个问题。 JDK可以从

下载

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

在android上设置JDK可以使用 How to set Java SDK path in AndroidStudio?

答案 2 :(得分:0)

这就是我解决问题的方法:

1。)创建一个新包并将其命名为rx 2.)在这个包中添加一个名为Observable的类,空类。

现在编译得很好。