在命令行上开发Android kotlin应用程序与Android Java应用程序的差异(没有android studio)

Mal*_*lte 5 command-line android kotlin

我正在尝试在命令行上编译以kotlin 编写的示例Android应用程序(原始源)。

它的Java版本可以毫无问题地进行编译。

这是文件层次结构布局:

.
??? AndroidManifest.xml
??? bin
??? mykey.keystore
??? obj
?   ??? com
?       ??? example
?           ??? helloandroid
??? res
?   ??? drawable
?   ??? layout
?   ?   ??? activity_main.xml
?   ??? values
?       ??? strings.xml
??? src
    ??? com
        ??? example
            ??? helloandroid
                ??? MainActivity.java
                ??? MainActivity.kt
Run Code Online (Sandbox Code Playgroud)

如果编译Java版本,则发出以下命令:

  1. aapt package -f -m -J ./src -M ./AndroidManifest.xml -S ./res -I /opt/android-sdk/platforms/android-28/android.jar
  2. javac -d obj -classpath src -bootclasspath /opt/android-sdk/platforms/android-28/android.jar src/com/example/helloandroid/*.java
  3. dx --dex --output=./bin/classes.dex ./obj
  4. aapt package -f -m -F ./bin/hello.unaligned.apk -M ./AndroidManifest.xml -S ./res -I /opt/android-sdk/platforms/android-28/android.jar
  5. cp ./bin/classes.dex .
  6. aapt add ./bin/hello.unaligned.apk classes.dex
  7. apksigner sign --ks mykey.keystore ./bin/hello.apk
  8. 通过adb在Google Pixel上安装该应用,即可正常运行。

现在的问题是:我如何用Kotlin复制该“工作流程”?

据我了解,我需要更改的唯一步骤是前两个步骤。我需要生成一个R.kt文件,因为否则R是未定义的,第二步是将源实际编译为类。那之后应该没有区别吗?

我不想使用gradle。我只想了解如何使用命令行工具。

预先感谢您提供任何有用的答案:D

编辑: Source完全在Kotlin中,而不是shkschneider建议的Java + Kotlin的混合。MainActivity.java本质上与我只想切换到Kotlin的MainActivity.kt相同。

Mal*_*lte 0

我解决了问题。该R.kt文件必须通过 JetBrains IDE 从R.java文件生成,因为它们不提供独立工具。如果有人知道请分享一个链接:D