我试图通过将我的项目的一些Java类转换为Kotlin并创建一个混合的Java / Kotlin项目来开始使用Kotlin。为了配置环境,我做了以下事情:
classpath "org.jetbrains.kotlin:kotlin-android-extensions:1.0.2"
; compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.2"
; error: cannot find symbol class Chat
。下面是原始类,转换后的类和日志:package br.com.gogame.model;
import com.google.gson.Gson;
import com.orm.SugarRecord;
import com.orm.dsl.Ignore;
import java.io.Serializable;
import java.util.List;
import br.com.gogame.model.enums.ChatType;
/**
* Created by edgar on 11-Apr-16.
*/
public class Chat extends SugarRecord implements Serializable {
private String title;
private String thumbnail;
private ChatType chat_type;
private long chat_id;
private int num_of_members;
private long user_id;
@Ignore
private List<Long> users;
public Chat() {
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getThumbnail() {
return thumbnail;
}
public void setThumbnail(String thumbnail) {
this.thumbnail = thumbnail;
}
public ChatType getChat_type() {
return chat_type;
}
public void setChat_type(ChatType chat_type) {
this.chat_type = chat_type;
}
public long getChat_id() {
return chat_id;
}
public void setChat_id(long chat_id) {
this.chat_id = chat_id;
}
public int getNum_of_members() {
return num_of_members;
}
public void setNum_of_members(int num_of_members) {
this.num_of_members = num_of_members;
}
public long getUser_id() {
return user_id;
}
public void setUser_id(long user_id) {
this.user_id = user_id;
}
public List<Long> getUsers() {
return users;
}
public void setUsers(List<Long> users) {
this.users = users;
}
@Override
public String toString() {
Gson gson = new Gson();
return gson.toJson(this, Chat.class);
}
}
package br.com.gogame.model
import com.orm.SugarRecord
import com.orm.dsl.Ignore
import java.io.Serializable
import br.com.gogame.model.enums.ChatType
/**
* Created by edgar on 11-Apr-16.
*/
class Chat : SugarRecord(), Serializable {
var title: String? = null
var thumbnail: String? = null
var chat_type: ChatType? = null
var chat_id: Long = 0
var num_of_members: Int = 0
var user_id: Long = 0
@Ignore
var users: List<Long>? = null
}
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\commons\infra\App.java
Error:(8, 42) error: cannot find symbol class DaggerMainComponent
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\view\fragments\FragmentChats.java
Error:(23, 27) error: cannot find symbol class Chat
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\communication\post_office\GCMOffice.java
Error:(25, 27) error: cannot find symbol class Chat
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\controller\util\JSONParser.java
Error:(22, 27) error: cannot find symbol class Chat
Error:(98, 17) error: cannot find symbol class Chat
Error:(111, 60) error: cannot find symbol class Chat
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\controller\ChatController.java
Error:(23, 27) error: cannot find symbol class Chat
Error:(41, 12) error: cannot find symbol class Chat
Error:(46, 12) error: cannot find symbol class Chat
Error:(62, 32) error: cannot find symbol class Chat
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\commons\util\FakeDataProvider.java
Error:(7, 27) error: cannot find symbol class Badge
Error:(8, 27) error: cannot find symbol class Chat
Error:(21, 24) error: cannot find symbol class Badge
Error:(94, 24) error: cannot find symbol class Chat
Error:(106, 20) error: cannot find symbol class Chat
Error:(118, 20) error: cannot find symbol class Chat
Error:(130, 20) error: cannot find symbol class Chat
Error:(142, 20) error: cannot find symbol class Chat
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\controller\util\NotificationFactory.java
Error:(19, 27) error: cannot find symbol class Chat
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\model\dao\ChatDAO.java
Error:(13, 27) error: cannot find symbol class Chat
Error:(24, 29) error: cannot find symbol class Chat
Error:(46, 19) error: cannot find symbol class Chat
Error:(60, 19) error: cannot find symbol class Chat
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\model\dao\ChatUserDAO.java
Error:(7, 27) error: cannot find symbol class Chat
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\model\dao\Datamanager.java
Error:(9, 27) error: cannot find symbol class Chat
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\model\dao\LocalUserDAO.java
Error:(8, 27) error: cannot find symbol class Chat
Error:(145, 24) error: cannot find symbol class Chat
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\view\adapters\BadgesAdapter.java
Error:(15, 27) error: cannot find symbol class Badge
Error:(21, 52) error: cannot find symbol class Badge
Error:(25, 60) error: cannot find symbol class Badge
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\controller\FriendshipController.java
Error:(21, 27) error: cannot find symbol class Chat
Error:(195, 79) error: cannot find symbol class Chat
Error:(33, 8) error: dagger.internal.codegen.ComponentProcessor was unable to process this class because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\controller\MessageController.java
Error:(23, 27) error: cannot find symbol class Chat
Error:(91, 50) error: cannot find symbol class Chat
Error:(117, 61) error: cannot find symbol class Chat
Error:(128, 65) error: cannot find symbol class Chat
Error:(216, 46) error: cannot find symbol class Chat
Error:(34, 8) error: dagger.internal.codegen.ComponentProcessor was unable to process this class because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\view\activities\ActivityCanvas.java
Error:(38, 27) error: cannot find symbol class Chat
Error:(64, 13) error: cannot find symbol class Chat
Error:(53, 8) error: dagger.internal.codegen.ComponentProcessor was unable to process this class because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\view\activities\ActivityFriends.java
Error:(22, 27) error: cannot find symbol class Chat
Error:(196, 13) error: cannot find symbol class Chat
Error:(39, 8) error: dagger.internal.codegen.ComponentProcessor was unable to process this class because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\view\adapters\ChatAdapter.java
Error:(26, 27) error: cannot find symbol class Chat
Error:(35, 50) error: cannot find symbol class Chat
Error:(43, 58) error: cannot find symbol class Chat
Error:(35, 8) error: dagger.internal.codegen.ComponentProcessor was unable to process this class because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
C:\SIBEN\Edgar\workspace\GoGame\current\app\src\main\java\br\com\gogame\commons\infra\dagger\MainComponent.java
Error:(42, 8) error: dagger.internal.codegen.ComponentProcessor was unable to process this interface because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED
Information:Total time: 7.406 secs
Information:51 errors
Information:4 warnings
Information:See complete output in console
答案 0 :(得分:10)
正如用户@Ilya指出的那样,问题是.kt文件没有被编译,因此,当我尝试在设备中部署应用程序时,无法识别。要解决这个问题,我所要做的就是在我的模块的gradle.build中添加apply plugin: 'kotlin-android'
,如他在评论中指出的链接所示,这就是全部!它现在有效!
答案 1 :(得分:1)
我遇到了相同的问题并已解决,如下所示(假设添加了apply plugin: kotlin-android
,但问题仍然存在):
android {
...
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}