2014-05-25 4 views
0

카타콤이있는 팀에서 오프라인 라우팅 앱을 개발 중입니다. MapView를 성공적으로 구현했으며 실제 Android 기기에서 테스트 할 때 작동합니다.카세트 타입 및 Genymotion

하지만 Genemotion Emu를 사용하여 테스트 할 때 로그 cat에 다음 오류 메시지와 함께 호출 될 때 활동이 중단됩니다.

05-25 16:37:19.468: E/AndroidRuntime(1050): FATAL EXCEPTION: main 
05-25 16:37:19.468: E/AndroidRuntime(1050): java.lang.ExceptionInInitializerError 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at de.hshn.tourwest.classes.CMapView.init(CMapView.java:109) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at de.hshn.tourwest.classes.CMapView.onDraw(CMapView.java:245) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.draw(View.java:13458) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.getDisplayList(View.java:12409) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.getDisplayList(View.java:12453) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.draw(View.java:13182) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.ViewGroup.drawChild(ViewGroup.java:2929) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2799) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.getDisplayList(View.java:12407) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.getDisplayList(View.java:12453) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.draw(View.java:13182) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.ViewGroup.drawChild(ViewGroup.java:2929) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2799) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.getDisplayList(View.java:12407) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.getDisplayList(View.java:12453) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.draw(View.java:13182) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.ViewGroup.drawChild(ViewGroup.java:2929) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2799) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.draw(View.java:13461) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.widget.FrameLayout.draw(FrameLayout.java:467) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2183) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.getDisplayList(View.java:12409) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.View.getDisplayList(View.java:12453) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1144) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.ViewRootImpl.draw(ViewRootImpl.java:2147) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2019) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1830) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.Choreographer.doCallbacks(Choreographer.java:555) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.Choreographer.doFrame(Choreographer.java:525) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.os.Handler.handleCallback(Handler.java:615) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.os.Handler.dispatchMessage(Handler.java:92) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.os.Looper.loop(Looper.java:137) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at android.app.ActivityThread.main(ActivityThread.java:4745) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at java.lang.reflect.Method.invoke(Method.java:511) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at dalvik.system.NativeStart.main(Native Method) 
05-25 16:37:19.468: E/AndroidRuntime(1050): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load cartotype: findLibrary returned null 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at java.lang.Runtime.loadLibrary(Runtime.java:365) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at java.lang.System.loadLibrary(System.java:535) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  at com.cartotype.Framework.<clinit>(Framework.java:944) 
05-25 16:37:19.468: E/AndroidRuntime(1050):  ... 42 more 

나는 내 주변에 안드로이드 장치가 없으므로 에뮬레이터를 사용해야합니다.

libs와 올바른 추가됩니다

<project>\libs\cartotype.jar 
    <project>\libs\armeabi\libcartotype.so 
+0

웹 사이트에서 CartoType 문의 양식 또는 전자 메일 주소로 문의하십시오. 우리가 도울 수 있습니다. –

답변

0

Genymotion는 x86 아키텍처에서 실행됩니다. loadLibrary 메소드가 실행되면

, 런타임은 Cartotype 그것을 지원해야이 에뮬레이터에 대한 귀하의 응용 프로그램을 실행하려면 폴더 app_data/libs/x86/

내부 라이브러리 (.so를) 찾을 시도합니다. Cartotype가 86을 지원하지 않는 것 같습니다

<project>\libs\myLib.jar 
    <project>\libs\armeabi\myLib.so 
    <project>\libs\x86\myLib.so 

: 라이브러리가 86을 지원하는 경우처럼 은 libs와 디렉토리가 보일 것입니다. Genotype을 포함하여 x86 CPU를 사용하는 장치가 늘어남에 따라이 아키텍처를 지원하려면 Cartotype에 요청해야합니다.

또는 x86을 지원하는 다른 오프라인지도 라이브러리를 찾으십시오.

+1

CartoType의 Android SDK에는 이제 ARM 및 x86 빌드가 모두 포함됩니다. –

0

Genymotion을 사용하는 대신 SDK의 표준 Android 에뮬레이터를 사용하십시오. ARM 코드를 직접 실행하지 않고 ARM CPU를 에뮬레이션하므로 ARM 형식으로 만 제공되는 라이브러리에 대처해야합니다.

예,이 경우 속도가 느려지지만이 경우 전혀 작동하지 않는 것보다 속도가 느리다는 것을 알고 있습니다.