如何解决:“错误:无法找到符号类…”转换后的Java类Kotlin?

我试图从Kotlin开始,将我的项目的一些Java类转换为Kotlin,并创建一个混合的Java / Kotlin项目。 为了配置环境我做了以下几点:

  1. 下载最新版本的Kotlin插件(1.0.2);
  2. 在顶层gradle.plugin我已经添加了: classpath "org.jetbrains.kotlin:kotlin-android-extensions:1.0.2" in dependencies section;
  3. 在我的模块的gradle插件中,我添加了:在依赖部分compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.2" ;
  4. 我选择了POJO类,我想转换为kotlin,从菜单代码 – >转换Java文件到Kotlin文件;
  5. 之后,导入转换类的所有Java类开始显示: error: cannot find symbol class Chat 。 以下是原始类,转换后的类和日志:

原始Java类:

 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); } } 

转换Kotlin类

 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 

正如用户@Ilya指出的那样,问题在于.kt文件没有被编译,因此当我尝试在设备中部署应用程序时,无法识别。 为了解决这个问题,我所要做的就是在我的模块的gradle.build中添加apply plugin: 'kotlin-android' ,就像他在他的评论中指出的链接中所指出的那样。 它现在工作!