我在初始化map时遇到了一个错误,当我试图将map用作外部库并尝试使其成为辅助库时,apk被创建,当我尝试启动map时,它崩溃了。但当我在没有dex的情况下尝试同样的东西时,效果很好(下面是stacktrace)。
如何解决此问题?我正面临65536限制超出错误。所以,这是创建apk的唯一方法,我正在使用ant。
java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
10-06 22:20:24.374: E/AndroidRuntime(17015): at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
10-06 22:20:24.374: E/AndroidRuntime(17015): at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source)
10-06 22:20:24.374: E/AndroidRuntime(17015): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:291)
10-06 22:20:24.374: E/AndroidRuntime(17015): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
您似乎使用了google-play-services.jar。jar文件不包括一些资源。
将google-play-services_lib链接到您的项目。
java.lang.NoClassDefFoundError.com.google.android.gms.R$styleable在android 中
如果您使用eclipce,请将Google Play Services从您的SDK导入到工作区并添加为库。如果您使用安卓工作室,请将渐变添加为dependencies。compile'com.google.android.gms:play services:6.1.+'
以下是使用Google Play Services进行开发的链接:http://developer.android.com/google/play-services/setup.html
您不能将jar文件用于google play服务。
你可以在Jake Wharton的博客上找到更多关于64k Limit的信息;http://jakewharton.com/play-services-is-a-monolith/
此外,随着Android 5.0 Lolipop的发布,谷歌发布了一个MultiDexApplication库。你应该试试。http://developer.android.com/reference/android/support/multidex/MultiDexApplication.html
注:对于API v21,安卓系统本机支持此功能。