2012-09-16 83 views
2

我想在iOS上使用Google地图和Mono for Android。我已经完成以下步骤:com.google.android.maps包不存在

  1. 我安装了Android SDK和谷歌地图API在/用户/ JosephAnderson/Android的软件开发工具包

  2. 我创建了一个仿真器只为谷歌地图,它的目标API 8 Google Maps API

  3. 我从Xamarin添加了对Android.GoogleMaps程序集的引用。

我部署到仿真器时收到此错误:

包com.google.android.maps不存在

在添加SDK来开发/软件开发工具包/ Android的SDK-mac_x86并加入此我assembly.cs文件:

[组件:Android.App.UsesLibrary(名称= “com.google.android.maps”)]

我添加map.jar到根目录我的Android项目并将其构建类型设置为AndroidJavaLibrary。

我的项目将建成,但我得到我的设备上此错误:

Java.Lang.NoClassDefFoundError: menufinderan.MyMapActivity 
    at Android.Runtime.JNIEnv.FindClass (System.String classname) [0x00087] in /Users/builder/data/lanes/monodroid-mac-monodroid-4.2.5-branch/6cbc40e0/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.cs:275 
    at Android.Runtime.JNIEnv.FindClass (System.Type type) [0x00009] in /Users/builder/data/lanes/monodroid-mac-monodroid-4.2.5-branch/6cbc40e0/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.cs:233 
    --- End of managed exception stack trace --- 
    java.lang.NoClassDefFoundError: menufinderan.MyMapActivity 
    at mono.android.view.View_OnClickListenerImplementor.n_onClick(Native Method) 
    at mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:29) 
    at android.view.View.performClick(View.java:2485) 
    at android.view.View$PerformClick.run(View.java:9089) 
    at android.os.Handler.handleCallback(Handler.java:587) 
    at android.os.Handler.dispatchMessage(Handler.java:92) 
    at android.os.Looper.loop(Looper.java:123) 
    at android.app.ActivityThread.main(ActivityThread.java:3806) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:507) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
    at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation 
    at dalvik.system.DexFile.defineClass(Native Method) 
    at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:207) 
    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:200) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
    ... 13 more 

该错误只MapActivity继承时出现。

我忘了什么吗?

回答

1

我做这些步骤来解决问题:

在终端,键入以下命令:

默认写com.apple.Finder AppleShowAllFiles TRUE

killall查找

导航到该文件夹:

/Users/josephanderson/Library/Developer/Xamarin/android-sdk-mac_x86

在此处安装Google Maps API(转至工具文件夹并单击Android。完成其余的步骤。)完成后,Google Maps API将存在于加载项文件夹中。

将此文件复制到用户/ josephanderson从

/Users/[USERNAME]/.local/share/Xamarin/Mono为Android/debug.keystore

复制这个代码粘贴到终端:

keytool -list -alias androiddebugkey -keystore debug。密钥库-storepass的android -keypass安卓

2

Xamarin IDE提供了一个更简单的方法

  1. 从工具菜单,选择打开AVD管理
  2. 从Android虚拟设备管理器应用程序的工具菜单,选择管理SDK ..
  3. 对于您定位的每个Android SDK,请选中“Google API”复选框并安装软件包。

您现在应该安装Google Maps SDK。

+0

他们在某个时候删除了“Google API”吗?我只能找到它的API 18,它从19岁起呢? – neslekkiM