我正在尝试编译命令行上Kotlin中写的sample Android应用程序(原始源)。
IT的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
如果我编译了Java版本,我会发出以下命令:
-
aapt package -f -m -J ./src -M ./AndroidManifest.xml -S ./res -I /opt/android-sdk/platforms/android-28/android.jar
-
javac -d obj -classpath src -bootclasspath /opt/android-sdk/platforms/android-28/android.jar src/com/example/helloandroid/*.java
-
dx --dex --output=./bin/classes.dex ./obj
-
aapt package -f -m -F ./bin/hello.unaligned.apk -M ./AndroidManifest.xml -S ./res -I /opt/android-sdk/platforms/android-28/android.jar
-
cp ./bin/classes.dex .
-
aapt add ./bin/hello.unaligned.apk classes.dex
-
apksigner sign --ks mykey.keystore ./bin/hello.apk
- 通过ADB在Google Pixel上安装该应用程序,并且起作用。
现在的问题是:我如何用kotlin复制"工作流程"?
据我了解,据我了解,我需要更改的唯一步骤是前两个。我需要生成一个R.kt
文件,因为否则R
是未定义的,第二步我实际上将源编译为类。之后应该没有区别?
我不想使用gradle。我只想了解如何使用命令行utils。
事先感谢您的任何有用的答案:D
编辑:源完全在Kotlin中,而不是Shkschneider所建议的Java Kotlin的混合。mainActivity.java本质上是与MainActivity.kt我只想切换到Kotlin的代码。
我解决了问题。R.kt
文件必须通过R.java
文件通过JETBRAINS IDE生成,因为它们不提供独立工具。如果有人知道一个,请分享一个链接:D