15

I'm working in Kotlin since severals months, I started to make libraries like i was doing with java sources, and it's working fine. But, i have a huge problem with these librairies, I cannot debug them (while I never had problems for java ones). When i jump into sources, the only thing I have is this :

public open fun clearDevices(): kotlin.Unit { /* compiled code */ }

public final fun disconnect(): kotlin.Unit { /* compiled code */ }

public final fun initiate(context: android.content.Context): kotlin.Unit { /* compiled code */ }

There is the same behavior for .jar and .aar files.

I tried many things, like adding sourceSets in gradle file, create task in gradle to find sources and attach them to jar/aar and some others things i don't remember, but absolutely nothing worked.

My question is this : What is the proper way to compile kotlin code (aar and jar) to make it debuggable

Thank you by advance :)

EDIT

In order to create jar from java librairies, i used to execute this 2 gradle tasks :

task deleteJar(type: Delete) {
    delete '../libs/my_lybrary.jar'
}

task createJar(type: Copy) {
    from('build/intermediates/bundles/release')
    into('../libs')
    include('classes.jar')
    rename('classes.jar', 'my_lybrary.jar')
}

createJar.dependsOn(deleteJar, build)

In the project, where i needed this library i was just creating a "libs" directory, in the app directory, and i was including it with this this line in gradle dependencies :

implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation fileTree(include: ['*.aar'], dir: 'libs') // Or that for aar

I just found how to attach sources in android-studios. Now i can navigate threw sources for old kotlin librairies i made. To make that possible, I make "Go to declaration", and i choose sources on top right to navigate on my computer and choose the top folder of the library sources. I don't know if there was a change in android-studio or the compiler, but the jar creation does not work anymore (it fails with this :library:createJar NO-SOURCE). So even if i just want to make a library code only, i have to create an aar now. I'm happy to see i can debug both aar and jar files, but I just tried, even with "F7" it jumps randomly. I don't understand why?

Another question. I made several librairies with code, integrated in a bigger aar library. When this aar is added to a project, is it possible to debug low code librairies in the top project?

thomas_exotic
  • 211
  • 1
  • 7
  • It helps if you show what you tried that isn't working, likely your Gradle file that is producing your JARs, then explain where these JARs are kept (local repo, remote repo, etc), and how you are including them into your project, and if you included the source JARs into the Intellij (or Android Studio) project. Since all of these topics are well covered on the internet, it is hard to guess which thing you got wrong along the way. – Jayson Minard Nov 22 '18 at 17:21
  • I just edited my post – thomas_exotic Nov 23 '18 at 09:57
  • Did you find a solution for this? I'm facing the same situation. – hmartinezd Nov 12 '19 at 21:34
  • 2
    its 2020 did anyone find solution for this ? – Nishant Pardamwar Jan 16 '20 at 05:44
  • Use IntelliJ. You'll be able to debug that Kotlin code using a proper IDE. – duffymo Mar 19 '21 at 09:36

1 Answers1

0

Maven (gradle builds on maven repo) has a standard way of sharing source and javadoc jars. You have to create jar files with classifier 'javadoc' and 'sources' and deploy it together with the compiled jar file.

here is how you do it with gradle: How to build sources jar with gradle?

kocka
  • 657
  • 6
  • 14