无法将MapboxAndroidSDK集成到我的android studio项目中

时间:2014-09-29 15:57:01

标签: sdk android-studio mapbox

我按照https://github.com/mapbox/mapbox-android-sdk#building-from-source中的说明操作,目前正在使用Android Studio。我曾经在这个Android项目中使用Eclipse,而且我昨天花了很多时间试图将mapbox-android-sdk与Eclipse中的android项目集成。我希望mapbox-android-sdk上的说明更清楚 - 如果我知道如何,我很乐意帮助他们。

我将旧的Android项目导入Android Studio,然后进入File-> Import Project并在我系统中下载git源代码树的目录中选择build.gradle内的MapboxAndroidSDK

然后,虽然在Android Studio中选择了我的Android项目需要支持地图,但我在Android Studio中使用File-> Import Module添加了在MapboxAndroidSDK目录中生成的* .aar文件。

无论如何,当我现在运行我的应用程序时,我收到以下错误。任何帮助表示赞赏。

09-29 11:30:07.061    1111-1111/com.username.someapp D/﹕ HostConnection::get() New Host   Connection established 0xb7b6bdb8, tid 1111
09-29 11:30:07.091    1111-1111/com.username.someapp W/EGL_emulation﹕ eglSurfaceAttrib not implemented
09-29 11:30:07.101    1111-1111/com.username.someapp D/OpenGLRenderer﹕ Enabling debug mode 0
09-29 11:30:16.431    1111-1111/com.username.someapp D/dalvikvm﹕ GC_FOR_ALLOC freed 104K, 5% free 3282K/3448K, paused 20ms, total 24ms
09-29 11:30:16.481    1111-1111/com.username.someapp W/dalvikvm﹕ VFY: unable to find class referenced in signature (Ljava/nio/file/Path;)
09-29 11:30:16.481    1111-1111/com.username.someapp W/dalvikvm﹕ VFY: unable to find class referenced in signature ([Ljava/nio/file/OpenOption;)
09-29 11:30:16.491    1111-1111/com.username.someapp I/dalvikvm﹕ Could not find method java.nio.file.Files.newOutputStream, referenced from method okio.Okio.sink
09-29 11:30:16.491    1111-1111/com.username.someapp W/dalvikvm﹕ VFY: unable to resolve static method 10776: Ljava/nio/file/Files;.newOutputStream (Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStrea
m;
09-29 11:30:16.491    1111-1111/com.username.someapp D/dalvikvm﹕ VFY: replacing opcode 0x71 at 0x000a
09-29 11:30:16.491    1111-1111/com.username.someapp W/dalvikvm﹕ VFY: unable to find class referenced in signature (Ljava/nio/file/Path;)
09-29 11:30:16.491    1111-1111/com.username.someapp W/dalvikvm﹕ VFY: unable to find class referenced in signature ([Ljava/nio/file/OpenOption;)
09-29 11:30:16.501    1111-1111/com.username.someapp I/dalvikvm﹕ Could not find method java.nio.file.Files.newInputStream, referenced from method okio.Okio.source
09-29 11:30:16.501    1111-1111/com.username.someapp W/dalvikvm﹕ VFY: unable to resolve static method 10775: Ljava/nio/file/Files;.newInputStream (Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
09-29 11:30:16.501    1111-1111/com.username.someapp D/dalvikvm﹕ VFY: replacing opcode 0x71 at 0x000a
09-29 11:30:16.511    1111-1111/com.username.someapp D/AndroidRuntime﹕ Shutting down VM
09-29 11:30:16.511    1111-1111/com.username.someapp W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xb1aaaba8)
09-29 11:30:16.531    1111-1111/com.username.someapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.username.someapp, PID: 1111
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.username.someapp/com.username.someapp.MapActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.username.someapp.MapActivity.onCreate(MapActivity.java:51)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)

我认为可以使用here中的说明

解决问题

不要忘记在类路径中包含MapboxAndroidSDK / build.gradle的依赖项!

但我不知道如何在Android Studio中执行此操作。任何人都可以指出究竟是什么依赖关系以及如何?我应该将它们添加为文件 - >项目结构 - >依赖关系 - >库依赖关系 - >?对此有任何见解深表赞赏。

1 个答案:

答案 0 :(得分:0)

谢谢Scott Barta。

对于其他有类似问题的人来说,我想详细说明我是如何解决这个问题的。正如Scott指出的那样,我的代码存在问题,而不是SDK。对于初学者,请注意mapbox-android-sdk附带一个有效的测试应用程序,所以最后如果你被困在这里,请记住应用程序可能不是问题。

无论如何,事实证明我没有正确发起Activity。我必须使用正确的MapView实例化它,并使用适当的mapbox:mapid(应该在*.xml文件或清单文件中声明。此外,原始页面中的示例是对于fragment看起来与我的代码略有不同导致了一些混乱。最后,但肯定不是最不重要的,我已经切换了这么多平台让它工作(eclipse,gradle和现在的android工作室)很可能其中一个最大的原因。我计划在某个地方捕获这些更改到我的应用程序,如果我感兴趣,我会更新这个答案的更多细节。