2013-05-30 34 views
1

剛剛將我的應用升級到適用於Android的ArcGIS 10.1.1版,並開始出現運行時錯誤。如果我將libGLMapCore.so文件添加到項目庫libs-> armeabi目錄中,問題消失,程序運行正常。ArcGIS 10.1.1 libGLMapCore.so

此文件不在ArgGIS示例HelloWorld中,所以我想知道爲什麼我的項目需要它。如果有人能幫我解決這個問題,我會很感激。 (僅供參考 - 我嘗試從ESRI示例複製libs文件夾,但它沒有幫助。)下面是我沒有libGLMapCore.so文件得到的堆棧跟蹤。

05-30 12:53:42.117: E/Trace(1738): error opening trace file: No such file or directory (2) 
05-30 12:53:42.507: W/dalvikvm(1738): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/esri/android/map/MapSurface; 
05-30 12:53:42.507: D/AndroidRuntime(1738): Shutting down VM 
05-30 12:53:42.507: W/dalvikvm(1738): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 
05-30 12:53:42.527: E/AndroidRuntime(1738): FATAL EXCEPTION: main 
05-30 12:53:42.527: E/AndroidRuntime(1738): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.baseops.airsuitability.main/com.baseops.airsuitability.main.AirfieldSuitabilityMain}: android.view.InflateException: Binary XML file line #8: Error inflating class com.esri.android.map.MapView 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.os.Looper.loop(Looper.java:137) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.app.ActivityThread.main(ActivityThread.java:5041) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at java.lang.reflect.Method.invoke(Method.java:511) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at dalvik.system.NativeStart.main(Native Method) 
05-30 12:53:42.527: E/AndroidRuntime(1738): Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class com.esri.android.map.MapView 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.view.LayoutInflater.createView(LayoutInflater.java:613) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.app.Activity.setContentView(Activity.java:1881) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at com.baseops.airsuitability.main.AirfieldSuitabilityMain.onCreate(AirfieldSuitabilityMain.java:73) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.app.Activity.performCreate(Activity.java:5104) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  ... 11 more 
05-30 12:53:42.527: E/AndroidRuntime(1738): Caused by: java.lang.reflect.InvocationTargetException 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at java.lang.reflect.Constructor.constructNative(Native Method) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  ... 22 more 
05-30 12:53:42.527: E/AndroidRuntime(1738): Caused by: java.lang.ExceptionInInitializerError 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at com.esri.android.map.MapView.a(Unknown Source) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at com.esri.android.map.MapView.<init>(Unknown Source) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  ... 25 more 
05-30 12:53:42.527: E/AndroidRuntime(1738): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load GLMapCore from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.baseops.airsuitability.main-1.apk,libraryPath=/data/app-lib/com.baseops.airsuitability.main-1]: findLibrary returned null 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at java.lang.Runtime.loadLibrary(Runtime.java:365) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at java.lang.System.loadLibrary(System.java:535) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at com.esri.android.a.a.a(Unknown Source) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  at com.esri.android.map.MapSurface.<clinit>(Unknown Source) 
05-30 12:53:42.527: E/AndroidRuntime(1738):  ... 27 more 

回答

1

我認爲這只是ArcGIS在非ArcGIS項目中使用插件時的一個bug。不過,這可能只是Eclipse的一個問題。當您使用Java庫時,它不會複製本地庫...我不確定它會爲任何庫執行此操作。但是MapSurface類試圖使用本地庫,並且它不在那裏......所以如果Eclipse不爲你做,它就會添加它。

我遇到了同樣的問題。我在arcGIS論壇上發現一篇文章,指出我的項目中缺少ArcGIS本機庫.so文件。就像你似乎都做了,我做了以下的機庫複製到我的項目,現在其鏈接,並創建一個Map對象:

  • 爲Android嚮導
  • 創建與SDK ArcGIS的項目新項目將新項目的本地庫複製到現有項目。例如。 $ //庫/ armeabi(-v7a)/libruntimecore_java.so。請記住,此文件名已在v10.1.1更改。
  • 右鍵單擊您原來的項目,並選擇屬性
  • 選擇Java Build Path>訂單和出口標籤 確認爲Android 9.1.1類路徑容器ArcGIS的出口

希望這有助於。以下是論壇的鏈接:http://forums.arcgis.com/threads/87407-Error-inflating-class-com.esri.android.map.MapView?highlight=exception