From eb0415b2e53c8889b947ece5bf103ec7cdda03b9 Mon Sep 17 00:00:00 2001 From: Nikolay Igotti Date: Tue, 26 Sep 2017 15:10:25 +0300 Subject: [PATCH] Fix Android build (#886) --- .../src/org/jetbrains/kotlin/backend/konan/LinkStage.kt | 2 ++ samples/androidNativeActivity/README.md | 5 +++-- samples/androidNativeActivity/android.def | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/LinkStage.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/LinkStage.kt index 69728d4b80f..74e468e4959 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/LinkStage.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/LinkStage.kt @@ -78,11 +78,13 @@ internal open class AndroidPlatform(distribution: Distribution) = binaries.filter { it.isUnixStaticLib } override fun linkCommand(objectFiles: List, executable: ExecutableFile, optimize: Boolean, debug: Boolean): List { + // liblog.so must be linked in, as we use its functionality in runtime. return mutableListOf(clang).apply{ add("-o") add(executable) add("-fPIC") add("-shared") + add("-llog") addAll(objectFiles) if (optimize) addAll(linkerOptimizationFlags) if (!debug) addAll(linkerDebugFlags) diff --git a/samples/androidNativeActivity/README.md b/samples/androidNativeActivity/README.md index f7b5a195b38..ea8901506c7 100644 --- a/samples/androidNativeActivity/README.md +++ b/samples/androidNativeActivity/README.md @@ -2,9 +2,10 @@ This example shows how to build an Android Native Activity. The example will render a textured dodecahedron using OpenGL ES library. It can be rotated with fingers. -Please make sure that Android SDK version 25 is installed, using Android SDK manager. +Please make sure that Android SDK version 25 is installed, using Android SDK manager in Android Studio. +See https://developer.android.com/studio/index.html for more details on Android Studio. To build use `ANDROID_HOME= ../gradlew buildApk`. -Run `$ANDROID_HOME/sdk/platform-tools/adb install -e build/outputs/apk/androidNativeActivity-arm-debug.apk` +Run `$ANDROID_HOME/sdk/platform-tools/adb install -r build/outputs/apk/androidNativeActivity-arm-debug.apk` to deploy the apk on the Android device or emulator (note that only ARM-based devices are currently supported). diff --git a/samples/androidNativeActivity/android.def b/samples/androidNativeActivity/android.def index 519f3eccc9a..86750ea3392 100644 --- a/samples/androidNativeActivity/android.def +++ b/samples/androidNativeActivity/android.def @@ -1,5 +1,6 @@ // TODO: androidLauncher.h will become part of the platform library. headers = stdio.h stdlib.h string.h math.h time.h android/log.h androidLauncher.h EGL/egl.h GLES/gl.h +linkerOpst = -landroid -lEGL -lGLESv1_CM -lz --- static int interop_errno() {