【问题标题】:google-play-services won't build into Android Maps HelloWorld project in Eclipsegoogle-play-services 不会在 Eclipse 中构建到 Android Maps HelloWorld 项目中
【发布时间】:2013-11-13 06:40:23
【问题描述】:

更新:一个 UI 错误阻止我导入 google-play-services_lib。我必须立即单击 SDK 列表下方才能滚动查看库框。请参阅the image in the accepted answer 了解更多信息。

我正在使用 Android IDE 获取一个 Hello World 地图应用程序,我将其命名为 Intactless2。这些文件都正确命名,/libs 中的 android-support-v4.jar,我有一个有效的 API 密钥等。

我按照 Google 的 Android 地图指南,逐字复制和粘贴 Java 和 activity_main.xml:

https://developers.google.com/maps/documentation/android/start#getting_the_google_maps_android_api_v2

我正确地将那里的所有内容添加到我的清单中。我在 <meta-data android:name="com.google.android.gms.version"... 的值不正确时遇到错误,因此我将 version.xml 文件中的整数硬编码为 android:value="4030500"。否则我的清单不会改变。

针对收到的错误消息,我尝试了 Google 热门搜索中的所有解决方案,但仍然无法运行。通常,这表明我没有想到可能与 Google Play 服务无关的特殊错误,但我完全按照 Google 指南的建议重建了它,并重新修改了这些帖子中的所有建议,但仍然无法使用 Google播放服务。

我正在运行 4.4 模拟器,而 4.4 是我的项目将构建的最低版本。我尝试了以下方法以便能够在我的应用中使用 google-play-services/google-play-services_lib:

1) 为 Google Play Services 制作了一个 Eclipse 项目并将其添加到我的项目中。右键单击我的项目 -> 属性 -> Java 构建路径 -> 项目添加 -> google-play-services_lib。 a) 在 Order & Export 中检查了 google-play-services_lib b) 在 Order 和 Export 中未选中 oogle-play-services_lib 2) 将我的 Android SDK 目录中的 google-play-services、google-play-services_lib 和 google-play-services.properties 复制粘贴到我项目中的 /libs 目录中。

1) 属性 -> Android -> 目标构建路径 -> Android 4.4 2) 属性 -> Android -> 目标构建路径 -> Google API(“Android 4.4”正下方的那个)

这是很多组合,包括 StackOverflow 上的人们提出的解决方案。

另外,如果我在清单中添加 <uses-library android:name="com.google.android.gms.maps" />(或按照某些指南的建议删除 gms),我会收到以下 LogCat 错误:

11-13 00:57:18.890: E/PackageManager(938): Package com.example.intactless2 requires unavailable shared library com.google.android.gms.maps; failing!

将 google-play-services/google-play-services_lib 作为 Eclipse 项目导入:

google-play-services_lib Eclipse 项目截图:http://postimg.org/image/ukbqjk9lp/

Package Explorer 中我的 hello world Maps 项目的屏幕截图:http://postimg.org/image/589t2137h/

控制台输出:

...
[2013-11-12 21:57:13 - Intactless2] Installing Intactless2.apk...
[2013-11-12 21:57:19 - Intactless2] Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY
[2013-11-12 21:57:19 - Intactless2] Please check logcat output for more details.
[2013-11-12 21:57:19 - Intactless2] Launch canceled!

LogCat:

11-13 01:03:44.870: E/AndroidRuntime(1886): FATAL EXCEPTION: main
11-13 01:03:44.870: E/AndroidRuntime(1886): Process: com.example.intactless2, PID: 1886
11-13 01:03:44.870: E/AndroidRuntime(1886): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.intactless2/com.example.intactless2.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
11-13 01:03:44.870: E/AndroidRuntime(1886):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
11-13 01:03:44.870: E/AndroidRuntime(1886):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
11-13 01:03:44.870: E/AndroidRuntime(1886):     at android.app.ActivityThread.access$700(ActivityThread.java:135)
...

将 google-play-services.jar、google-play-services_lib.jar 和 google-play-services.jar.properties 直接放入我项目的 /libs 目录中

Package Explorer 中我的 hello world Maps 项目的屏幕截图:http://postimg.org/image/l68z4crl7/

控制台输出:

...
[2013-11-12 22:15:20 - Intactless2] Uploading Intactless2.apk onto device 'emulator-5554'
[2013-11-12 22:15:20 - Intactless2] Installing Intactless2.apk...
[2013-11-12 22:15:37 - Intactless2] Success!
[2013-11-12 22:15:37 - Intactless2] Starting activity com.example.intactless2.MainActivity on device emulator-5554
[2013-11-12 22:15:41 - Intactless2] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.intactless2/.MainActivity }

LogCat:

11-13 01:15:43.990: E/AndroidRuntime(1959): FATAL EXCEPTION: main
11-13 01:15:43.990: E/AndroidRuntime(1959): Process: com.example.intactless2, PID: 1959
11-13 01:15:43.990: E/AndroidRuntime(1959): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
11-13 01:15:43.990: E/AndroidRuntime(1959):     at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
11-13 01:15:43.990: E/AndroidRuntime(1959):     at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
11-13 01:15:43.990: E/AndroidRuntime(1959):     at android.app.Activity.onCreateView(Activity.java:4784)
11-13 01:15:43.990: E/AndroidRuntime(1959):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
11-13 01:15:43.990: E/AndroidRuntime(1959):     at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
11-13 01:15:43.990: E/AndroidRuntime(1959):     at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
11-13 01:15:43.990: E/AndroidRuntime(1959):     at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
11-13 01:15:43.990: E/AndroidRuntime(1959):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
11-13 01:15:43.990: E/AndroidRuntime(1959):     at android.app.Activity.setContentView(Activity.java:1928)
11-13 01:15:43.990: E/AndroidRuntime(1959):     at com.example.intactless2.MainActivity.onCreate(MainActivity.java:11)
11-13 01:15:43.990: E/AndroidRuntime(1959):     at android.app.Activity.performCreate(Activity.java:5243)

提前感谢您!任何帮助表示赞赏。 :)

【问题讨论】:

  • 你是引用库项目还是添加为jar?
  • 我两者都做了并发布了两者的日志。都没有用。
  • stackoverflow.com/questions/17611017/…。看看这个是否有帮助
  • @Raghunandan 我没有将 google-play-services_lib 复制到我的工作区中,但是当我这样做时它不起作用。我运行了两次,一次是在 Order and Export 中检查了 google-play-services_lib,一次是未检查。我在每次运行前清理了我的项目。我的日志(两次运行都相同)在这里:pastebin.com/jgP0hxbJ
  • 什么不起作用? java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable 通常在你没有正确引用库项目时发生

标签: java android eclipse google-maps eclipse-adt


【解决方案1】:

您提到您使用的是 4.4 模拟器 - 您需要使用 Google APIs (Google Inc.) - API Level 19 模拟器来测试 Google Play 服务。

【讨论】:

  • 我相信java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable 通常会在您没有正确引用库项目时发生
【解决方案2】:

我认为你的 XML 文件中有错误,因为在 log-cat 中你得到了

 Binary XML file line #2: Error inflating class fragment first you try to rectify it

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多