5

gradle を介して Realm.io を依存関係として追加した後、プロジェクトのコンパイルで問題が発生しています。ダガーとデータバインディングによって作成された生成ファイルが見つかりません。realm.io を削除すると、アプリは正しくコンパイルされます。

これが私のbuild.gradleです

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'com.android.databinding'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

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

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.facebook.stetho:stetho:1.2.0'
compile 'com.facebook.stetho:stetho-okhttp:1.2.0'
compile 'io.reactivex:rxandroid:0.24.0'
compile 'io.reactivex:rxjava:1.0.14'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.okio:okio:1.4.0'
compile 'com.google.code.gson:gson:2.3'
compile 'com.jakewharton:butterknife:6.1.0'
compile 'com.android.support:recyclerview-v7:23.1.0'
compile 'com.squareup.picasso:picasso:2.3.2'
compile 'com.android.support:cardview-v7:23.1.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:design:23.1.0'
compile 'com.jakewharton.timber:timber:4.1.0'
compile 'io.realm:realm-android:0.85.1'

compile 'com.google.dagger:dagger:2.0.1'
provided 'javax.annotation:jsr250-api:1.0'
apt "com.google.dagger:dagger-compiler:2.0.1"
apt 'com.android.databinding:compiler:1.0-rc4'
}

エラー

Realm もファイルを生成していることがわかりましたが、おそらくコンパイラがうまく連携していない可能性があります。これを機能させる方法についてのアイデアはありますか?

ありがとう

4

4 に答える 4

2

次のエラーも表示されます。

フィールド goalInfo のセッターが見つかりません

フィールド名がゲッターとセッターと同じであることを確認してください。フィールド名の前に「m」を付けないでください。例:

@RealmClass
public Goal extends RealmObject {
    //private String mGoalInfo;
    private String goalInfo;

    public String getGoalInfo() {
        return goalInfo;
    }

    public void setGoalInfo(String goalInfo) {
        this.goalInfo = goalInfo;
    }
}
于 2016-01-17T21:05:19.960 に答える
1

私のプロジェクトでは、Realm、Dagger2、および Databinding がすべて機能しています。

違いは次のとおりです。

私はAndroid gradle plugin 1.5.0を使用しており、次の構成でデータバインディングを有効にしています。

android {
    ...
    dataBinding {
        enabled = true
    }
    ...
}

そして、私は持っていません

apt 'com.android.databinding:compiler:1.0-rc4'

依存関係で。

作業中のプロジェクト全体はこちら: https://github.com/zaki50/realm_template

于 2015-11-27T15:00:32.340 に答える
0

RealmObject を拡張する代わりに、RealmModel インターフェイスを実装し、アノテーション @RealmClass をクラスに追加できるようになりました。これにより BaseObservable を拡張できますが、まだ機能していません。

データバインディング エラーが発生します: パッケージ mypackage.databinding が存在しません

github でこの問題を参照してください: https://github.com/realm/realm-java/issues/2716

于 2016-05-08T08:49:55.977 に答える