From 3abb73819948535d13beeb654453ade6bc5ffec3 Mon Sep 17 00:00:00 2001 From: gyzhou Date: Thu, 10 Aug 2017 16:31:22 -0700 Subject: [PATCH] Update android build instruction for webrtc unity plugin. BUG=webrtc:8067 Review-Url: https://codereview.webrtc.org/2993423002 Cr-Commit-Position: refs/heads/master@{#19313} --- webrtc/examples/unityplugin/ANDROID_INSTRUCTION | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/webrtc/examples/unityplugin/ANDROID_INSTRUCTION b/webrtc/examples/unityplugin/ANDROID_INSTRUCTION index d782e94234..7f69faa834 100644 --- a/webrtc/examples/unityplugin/ANDROID_INSTRUCTION +++ b/webrtc/examples/unityplugin/ANDROID_INSTRUCTION @@ -4,9 +4,9 @@ Instruction of Running webrtc_unity_plugin on Android Unity Checkout WebRTC codebase: fetch --no-hooks webrtc_android If you already have a checkout for linux, add target_os=”android” into .gclient file. Run gclient sync + Modify files src/build/android/android_only_jni_exports.lst and src/build/android/android_only_explicit_jni_exports.lst to expose all functions. Namely, change "global" section to "*", and remove "local" section. Otherwise, Unity C# code will not be able to access the functions defined in the plugin. If you do this step after you create a build folder, you may have to clean and recreate the build folder. Run gn args out/Android, and again set target_os=”android” in the args.gn - Modify file src/build/android/android_only_jni_exports.lst, to expose all functions. Namely, change "global" section to "*", and remove "local" section. Otherwise, Unity C# code will not be able to access the functions defined in the plugin. - Run ninja -C out/Android webrtc_unity_plugin + Run ninja -C out/Android webrtc_unity_plugin 2. On Linux machine, compile target libwebrtc_unity under webrtc checkout. This is the java code for webrtc to work on Android. @@ -26,8 +26,12 @@ Instruction of Running webrtc_unity_plugin on Android Unity } #endif -6. Compile the unity project into an APK, and decompile the apk using apktool you can download from internet. And copy the AndroidManifest.xml to the Assets/Plugins/Android folder, and add two lines: - - +6. Compile the unity project into an APK, and decompile the apk using apktool that you can download from https://ibotpeaches.github.io/Apktool/ + Run apktool d apkname.apk. +Then copy the AndroidManifest.xml in the decompiled folder to the Assets/Plugins/Android folder, and add two lines: + + The purpose of using apktool is to get a well-written android manifest xml file. If you know how to write manifest file from scratch, you can skip using apktool. + +7. Compile the unity project into an APK again and deploy it to an android device.