미티어 안드로이드 앱 테스트

2018. 6. 18. 00:21Meteor

미티어 안드로이드 앱 테스트

(참고)

https://trello.com/c/DNQYipDH/30-android-app-%EB%A7%8C%EB%93%A4%EA%B8%B0


http://ddulh.tistory.com/299


https://guide.meteor.com/mobile.html#installing-prerequisites


(환경)
윈도우 10 64bit, Meteor 1.7.0.3


1. 공식 문서를 따라서 
 https://guide.meteor.com/mobile.html#installing-prerequisites


2. Install a Java Development Kit (JDK) 설치

자바 8버전 설치

https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a


시스템 환경 변수로 자바를 bin 폴더를 잡아 놓아서 "javac --version" 명령이 실행되도록 한다.

3. Install the Android SDK  (which is done most easily by installing Android Studio)
- Set ANDROID_HOME (Android SDK Root)
- Add ANDROID_HOME/tools, and ANDROID_HOME/platform-tools to your PATH
- Create an Android Virtual Device to run apps on an emulator

4. standalone version of gradle install (https://gradle.org/install/#install)
- 윈도우즈 choco gradle (관리자권한...)

5. "android" SDK commands can be translated to sdkmanager commands
(실행)
android list sdk 

(다음 안내에 따라서 ... y 선택)

**************************************************************************
The "android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.
For command-line tools, use tools\bin\sdkmanager.bat
and tools\bin\avdmanager.bat
**************************************************************************

"android" SDK commands can be translated to sdkmanager commands on a best-effort basis.
(This prompt can be suppressed with the --use-sdk-wrapper commend-line argument
or by setting the USE_SDK_WRAPPER environment variable)
Continue? [y/N]: y

6. meteor 테스트 앱 생성

meteor create apptest
cd apptest

7. set USE_SDK_WRAPPER=y
android 명령 처리가 sdkmanager.bat로 호환처리되록 설정

8. (실행) meteor add-platform android

D:\project\apptest>meteor add-platform android
npm WARN excluding symbolic link node_modules\.bin\nopt -> ../nopt/bin/nopt.js
npm WARN excluding symbolic link node_modules\.bin\semver -> ../semver/bin/semver
npm WARN excluding symbolic link node_modules\.bin\shjs -> ../shelljs/bin/shjs
Subproject Path: CordovaLib                  |
android: added platform


9. 미티어 안드로이드 실행
(mongoDB 임시 설정 - 임시 자동실행 방지)
set MONGO_URL=mongodb://localhost:3001/db

(실행) meteor run android
-> AVD Manager 로 가상 안드로이드 에뮬을 띄워놓고 있으면 미티어 앱이 에뮬레이터에 붙는다.

* meteor run android-device
-> 안드로이드 기기 개발자 모드로 연결해 놓고 있으면 붙을 것 같다.

** 미티어 내장 mongoDB를 기동하면 안드로이 실행에서 서버 구동에 에러가 발생한다.
미티어 내장 mongoDB를 따로 기동하도록 한다.

(테스트 실행 로그)
D:\project\apptest>meteor run android
[[[[[ ~\D\project\apptest ]]]]]

=> Started proxy.
WARNING: Attempting to install plugin cordova-plugin-statusbar@2.2.1, but it should have a minimum version of
         2.3.0 to ensure compatibility with the current platform versions. Installing the minimum version for
         convenience, but you should adjust your dependencies.
WARNING: Attempting to install plugin cordova-plugin-splashscreen@4.0.1, but it should have a minimum version of
         4.1.0 to ensure compatibility with the current platform versions. Installing the minimum version for
         convenience, but you should adjust your dependencies.
=> Started your app.

=> App running at: http://localhost:3000/
   Type Control-C twice to stop.

=> Started app on Android Emulator.
I20180617-23:43:50.297(9)? 06-17 14:43:46.460  7506  7506 I CordovaLog: Changing log level to DEBUG(3)
I20180617-23:43:50.344(9)? 06-17 14:43:46.546  7506  7506 I chromium: [INFO:library_loader_hooks.cc(36)] Chromium logging enabled: level = 0, default verbosity = 0
I20180617-23:43:50.346(9)? 06-17 14:43:46.682  7506  7556 E chromium: [ERROR:devtools_http_handler.cc(292)] Cannot start http server for devtools. Stop devtools.
I20180617-23:43:50.347(9)? 06-17 14:43:46.994  7506  7564 E chromium: [ERROR:gl_surface_egl.cc(320)] eglChooseConfig failed with error EGL_SUCCESS
I20180617-23:43:50.347(9)? 06-17 14:43:47.073  7528  7557 I chromium: [INFO:library_loader_hooks.cc(36)] Chromium logging enabled: level = 0, default verbosity = 0
I20180617-23:43:50.348(9)? 06-17 14:43:47.269  7506  7506 I MeteorWebApp: Serving asset bundle with version: 813d552eaa4da089ab8756e2ff345d33dbfc424b
I20180617-23:43:50.349(9)? 06-17 14:43:47.344  7506  7564 E chromium: [ERROR:gl_surface_egl.cc(320)] eglChooseConfig failed with error EGL_SUCCESS
I20180617-23:43:50.350(9)? 06-17 14:43:48.353  7528  7557 E chromium: [ERROR:BudgetService.cpp(160)] Unable to connect to the Mojo BudgetService.


(에러 사항 정리)
---------------
Java JDK, Android SDK, Gradle 실행 환경을 검사한다.

D:\project\apptest>meteor add-platform android
npm WARN excluding symbolic link node_modules\.bin\nopt -> ../nopt/bin/nopt.js
npm WARN excluding symbolic link node_modules\.bin\semver -> ../semver/bin/semver
npm WARN excluding symbolic link node_modules\.bin\shjs -> ../shelljs/bin/shjs
Subproject Path: CordovaLib                  /
android: added platform

Your system does not yet seem to fulfill all requirements to build apps for Android.

Please follow the installation instructions in the mobile guide:
http://guide.meteor.com/mobile.html#installing-prerequisites

Status of the individual requirements:
✗ Java JDK: Failed to run "javac -version", make sure that you have a JDK installed.
  You can get it from: http://www.oracle.com/technetwork/java/javase/downloads.

✗ Android SDK: Failed to find 'ANDROID_HOME' environment variable. Try setting it manually.
  Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to include path to valid SDK directory.
✗ Android target: cmd: Command failed with exit code 1 Error output:
  'avdmanager'��(��) ���� �Ǵ� �ܺ� ���, ������ �� �ִ� ���α׷�, �Ǵ�
  ��ġ ������ �ƴմϴ�.
✗ Gradle: Could not find gradle wrapper within Android SDK. Could not find Android SDK directory.
  Might need to install Android SDK or set up 'ANDROID_HOME' env variable.
---------------
Java JDK, Android SDK, Gradle 실행 환경 설정 완료
Java JDK 를 1.8 버전으로 맞춰야 한다.

D:\project\apptest>meteor add-platform android

npm WARN excluding symbolic link node_modules\.bin\nopt -> ../nopt/bin/nopt.js

npm WARN excluding symbolic link node_modules\.bin\semver -> ../semver/bin/semver

npm WARN excluding symbolic link node_modules\.bin\shjs -> ../shelljs/bin/shjs

Subproject Path: CordovaLib                  /

android: added platform


Your system does not yet seem to fulfill all requirements to build apps for Android.


Please follow the installation instructions in the mobile guide:

http://guide.meteor.com/mobile.html#installing-prerequisites


Status of the individual requirements:

SUCCESS Java JDK

SUCCESS Android SDK

✗ Android target: cmd: Command failed with exit code 1 Error output:

  Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

  at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)

  at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)

  at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)

  at com.android.sdklib.tool.AvdManagerCli.run(AvdManagerCli.java:213)

  at com.android.sdklib.tool.AvdManagerCli.main(AvdManagerCli.java:200)

  Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema

  at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)

  at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)

  at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)

  ... 5 more

SUCCESS Gradle

---------------

내장 MongoDB 실행에 실패해서 미티어 서버 기동이 실패한다.


D:\project\apptest1>meteor run android

[[[[[ ~\D\project\apptest1 ]]]]]


=> Started proxy.

Unexpected mongo exit code 3221225781. Restarting.

WARNING: Attempting to install plugin cordova-plugin-statusbar@2.2.1, but it should have a minimum version of

         2.3.0 to ensure compatibility with the current platform versions. Installing the minimum version for

         convenience, but you should adjust your dependencies.

WARNING: Attempting to install plugin cordova-plugin-splashscreen@4.0.1, but it should have a minimum version of

         4.1.0 to ensure compatibility with the current platform versions. Installing the minimum version for

         convenience, but you should adjust your dependencies.

Unexpected mongo exit code 3221225781. Restarting.

Unexpected mongo exit code 3221225781. Restarting.

Can't start Mongo server.

---------------

안드로이드 기기 연결할 수 없어서..


D:\project\apptest>meteor run android-device

[[[[[ ~\D\project\apptest ]]]]]


=> Started proxy.

Subproject Path: CordovaLibns                [==================         ] 66% 1.4s


WARNING: You are testing your app on a remote device. For the mobile app to be able to connect to the local

         server, make sure your device is on the same network, and that the network configuration allows clients

         to talk to each other (no client isolation).

I20180617-22:44:08.158(9)? Greetings from /server/main.js!

=> Started your app.


=> App running at: http://localhost:3000/

   Type Control-C twice to stop.


=> Errors executing Cordova commands:


   While running Cordova app for platform Android with options --device:

   Error: Command failed: D:\project\apptest\.meteor\local\cordova-build\platforms\android\cordova\run --device

   --device

   { CordovaError: Failed to deploy to device, no devices found.

---------------