Я использую Карты Google в проекте и строю его с Android.mk. Но все же (после нескольких дней исследований) cann't выяснить, как решить NoClassDefFoundError, который вредит apk вовремя. Может ли кто-нибудь внутри меня о том, как это нужно решить? Детальность ниже.
Google Play библиотека Услуги добавлена следующим образом:
#Adding classpath to Google Play Services classes
LOCAL_CLASSPATH += $(LOCAL_PATH)/google-play-services_lib/bin/
...
#Google Play Services
LOCAL_STATIC_JAVA_LIBRARIES += google-play-services \
google-play-services_lib
...
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += google-play-services:libs/google-play-services.jar \
google-play-services_lib:libs/google-play-services_lib.jar
Сложение идет хорошо, но приложение выдает ошибку во время выполнения, когда пытается раздуть макет с Google Maps фрагмента. LogCat:
**java.lang.NoClassDefFoundError**:
java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
at android.app.Activity.onCreateView(Activity.java:4996)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:695)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
at com.mapsvisitor.ui.MapsFragment.onCreateView(MapsFragment.java:81)
...
Код:
final View layout = inflater.inflate(R.layout.maps_layout, null);
Layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</LinearLayout>
Похоже, вы не указали правильные сервисы Google Play – Raghunandan
Это выглядит так. Но утилиты Google Play Services возвращают ** True ** для запроса 'isGooglePlayServicesAvailable'. У вас есть идеи, как ссылаться на него в make-файле? –
Можете ли вы правильно проверить, если вы ссылаетесь на сервисы Google Play. На вашем устройстве могут быть установлены google play servicesa apk, но вы указали то же самое в своем проекте? – Raghunandan