我正在使用Android Studio 3.0 beta 6 / gradle:3.0.0-beta6,今天我遇到编译问题。
当我开始构建(CTRL + F9)时,该过程停止运行:":app:compileDebugJavaWithJavac"
我等了1个多小时,没有任何改变。
Gradle sync没问题,问题就在于编译。
我认为这是我项目中的问题,因为我可以使用此Android Studio版本编译另一个项目而没有问题。
我对这个问题进行了很多修改,我不确切地知道问题出在哪里。
我的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'
我试试:
但问题还在继续。
任何想法? THKS。
编辑:我发现问题与会议室持久性库有关,因为当我评论此属性时:
@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;
}
答案 0 :(得分:1)
Finnaly,我找到了解决方案。
如果Room实体中有递归,则构建卡住。
如果删除递归,则不会发生此问题:
@Embedded
@SerializedName("ParentTask")
@Expose
public Task parentTask;
我错误地使用了房间。根据文件(https://developer.android.com/topic/libraries/architecture/room.html#no-object-references):
Room禁止实体类之间的对象引用