我在初始化地图时遇到错误,当我尝试将地图用作外部库并尝试创建辅助数据库时,会创建apk,当我尝试启动地图时,它会崩溃。但是当我在没有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)
答案 0 :(得分:1)
您似乎使用google-play-services.jar。 jar文件不包含一些资源。
将google-play-services_lib链接到您的项目。
java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable in android
答案 1 :(得分:1)
如果您使用eclipce从您的SDK导入Google Play服务到工作区并添加为库。 如果您使用Android Studio,请将gradle添加为依赖项。 编译com.google.android.gms:play-services:6.1。+'
以下是使用Google Play服务进行开发的链接: 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,Android本机支持此功能。