Я хочу создать простой APK-файл HelloWorld на языке C с использованием raylib.
Структура моего проекта:
Код: Выделить всё
HelloWorld/
├── CMakeLists.txt
├── src/
│ ├── main.c
├── android/
│ └── AndroidManifest.xml
└── build/
Код: Выделить всё
#include
int main(void) {
InitWindow(800, 600, "My App");
while (!WindowShouldClose()) {
BeginDrawing();
ClearBackground(RAYWHITE);
DrawText("Hello, World!", 190, 200, 20, LIGHTGRAY);
EndDrawing();
}
CloseWindow();
}
Код: Выделить всё
# Minimun version of CMake required to build the project
cmake_minimum_required(VERSION 3.5)
# Define the project name
project(HelloWorld)
# Specify the path of raylib headers
include_directories($ENV{RAYLIB_ANDROID}/include)
# Compile C code into a shared library
add_library(hello_world SHARED src/main.c)
# Import raylib
add_library(raylib STATIC IMPORTED)
# Specify the path of raylib
set_target_properties(raylib PROPERTIES IMPORTED_LOCATION $ENV{RAYLIB_ANDROID}/lib/arm64/libraylib.a)
# Link with necessary libraries
target_link_libraries(hello_world raylib android log EGL GLESv2)
Код: Выделить всё
Я запускаю:
Код: Выделить всё
cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK_HOME%\build\cmake\android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-35 ..
make
Тогда я бегу:
Код: Выделить всё
aapt package -f -m -F HelloWorld-temp.apk -M ../android/AndroidManifest.xml -I %ANDROID_HOME%/platforms/android-35/android.jar
Код: Выделить всё
aapt add HelloWorld-temp.apk lib/arm64-v8a/libhello_world.so
Затем я запускаю:
Код: Выделить всё
zipalign -v 4 HelloWorld-temp.apk
HelloWorld.apk
Затем я запускаю:
Код: Выделить всё
apksigner sign --ks my-key.jks --ks-key-alias HelloWorld HelloWorld.apk
Затем я запускаю (с телефоном, подключенным через USB):
Код: Выделить всё
adb install HelloWorld.apk
Код: Выделить всё
Performing Incremental Install
Serving...
All files should be loaded. Notifying the device.
Failure [INSTALL_FAILED_INVALID_APK: Scanning Failed.: Package /data/app/~~KjqkABJbYD3SKFrJm_qwcQ==/com.oussamateyib.helloworld-rmQUIQxHLXKSuzm4eo3fuw==/base.apk code is missing]
Есть идеи?
Примечание: мой телефон abi действительно Arm64-v8a.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -using-adb
Мобильная версия