gpt4 book ai didi

AndroidStudio gradle 构建锁定在 :app:compileDebugJavaWithJavac using Room

转载 作者:行者123 更新时间:2023-11-30 00:21:07 24 4
gpt4 key购买 nike

我正在使用 Android Studio 3.0 beta 6/gradle: 3.0.0-beta6,今天我遇到了编译问题。

当我开始构建 (CTRL+F9) 时,进程停止运行:":app:compileDebugJavaWithJavac"我等了 1 个多小时,没有任何变化。

Gradle sync 没问题,问题只是编译。

我认为这是我项目的问题,因为我可以用这个 Android Studio 版本编译另一个项目而没有问题。

我对这个probject做了很多修改,我不知道到底是哪里出了问题。

我的 gradle 文件包含这个:

implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
compile "android.arch.persistence.room:runtime:1.0.0-alpha9-1"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0-alpha9-1"
compile 'com.google.android.gms:play-services-vision:11.4.0'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.google.code.gson:gson:2.8.1'
compile 'com.squareup.retrofit2:converter-gson:2.2.0'
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.1'
compile 'com.google.guava:guava:21.0'

我尝试:

  1. 关闭/重新打开 AndroidStudio
  2. 重新安装java jdk
  3. 清理项目/重建项目
  4. 删除文件夹.gradle
  5. 回滚 gradle 文件更改

但问题仍然存在。

有什么想法吗?谢谢。

编辑:我发现问题与Room Persistence Library有关,因为当我评论这个属性时:

@Database(entities = {Task.class}, version = 1)

构建成功运行。

这是我的数据库类:

@Database(entities = {Task.class}, version = 1)
public abstract class MainDatabase extends RoomDatabase {

private static MainDatabase INSTANCE;

public abstract MainDao mainDao();

private static final Object sLock = new Object();

public static MainDatabase getInstance(Context context) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
MainDatabase.class, "tr.db")
.build();
}
return INSTANCE;
}
}

这是我的实体类:

@Entity(tableName = "tasks")
public class Task {

@PrimaryKey
@SerializedName("TaskID")
@Expose
public int taskID;

@SerializedName("TaskNumber")
@Expose
public int taskNumber;

@Embedded
@SerializedName("ParentTask")
@Expose
public Task parentTask;
}

最佳答案

最后,我找到了解决方案。

如果 Room 实体中存在递归,构建就会卡住。

如果我删除递归,问题就不会发生:

@Embedded
@SerializedName("ParentTask")
@Expose
public Task parentTask;

我以错误的方式使用了 Room。根据文档(https://developer.android.com/topic/libraries/architecture/room.html#no-object-references):

Room disallows object references between entity classes

关于AndroidStudio gradle 构建锁定在 :app:compileDebugJavaWithJavac using Room,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46259506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com