14

I'm trying to start with Kotlin by converting some Java classes of my project to Kotlin and create a mixed Java/Kotlin project. In order to configure the environment I did the following:

  1. Downloaded the latest version of Kotlin plugin (1.0.2);
  2. On the top level gradle.plugin I've added: classpath "org.jetbrains.kotlin:kotlin-android-extensions:1.0.2" in the dependencies section;
  3. In my module's gradle plugin I've added: compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.2" in the dependencies section;
  4. I've picked the POJO class I wanted to convert to kotlin, selected from menu Code -> Convert Java File to Kotlin File;
  5. After that, all Java classes that were importing the converted class started to display: error: cannot find symbol class Chat. Below are the original class, the converted class and the log:

Original Java class:

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

Converted Kotlin 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
}

Error Log:

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
3
  • 4
    It looks like your kotlin code isn't compiled during build process. Have you applied the required plugins, as the tutorial suggests? Also take a look at this example Commented Jun 21, 2016 at 14:30
  • That was it! I've added apply plugin: 'kotlin-android' and now .kt file is compiled and recognized. Thank very much. Commented Jun 21, 2016 at 14:41
  • 1
    @EdgarDaSilvaFernandes You should add an answer to this question explaining what you did in order to fix it, and mark it as the accepted answer :) Commented Jun 22, 2016 at 12:20

2 Answers 2

26

As pointed out by user @Ilya, the problem was that the .kt files weren't being compiled and, therefore, couldn't be recognized when I tried to deploy the app in the device. To solve this problem, all I had to do was add apply plugin: 'kotlin-android' in my module's gradle.build as indicated in the links he has pointed in his comment, and that's all! It works now!

Sign up to request clarification or add additional context in comments.

Comments

2

I had the same problem & fixed as follows (assuming that apply plugin: kotlin-android is added, but the problem still remains) :

Add sourceSets under android

android {
  ...
  sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
  }
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.