助けてください。他のすべてのソリューションを試して実装しましたが、アプリに Google マップを統合することはできません。
現在の問題は、フラグメントの膨張点にあります
05-21 00:17:24.629 26619-26619/com.wimedias12.orderr E/AndroidRuntime: FATAL EXCEPTION: main
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.SupportMapFragment.onInflate(Unknown Source)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:279)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at com.wimedias12.orderr.RestaurantFragments.RestaurantHomeFragment.onCreateView(RestaurantHomeFragment.java:66)
答えとして最初に出てくるのは、Googleサービスライブラリを正しい方法で参照することですが、それはセットアップされています.
これが私の現在の構成です。できれば助けてください。
restaurant_home.xml - マップを表示するフラグメント レイアウト
... Other fragment layout XML code ...
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:id="@+id/mapMap"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp">
<fragment
android:id="@+id/mapMapppp"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
</LinearLayout>
... Rest of the fragment layout XML ...
MapView を試してみましたが、うまくいきませんでした。フラグメントを使用する方が簡単だと読みました。
RestaurantHomeFragment.java - フラグメントのコード
public class RestaurantHomeFragment extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.restaurant_home, container, false); //<-- This line breakes
....
}
このフラグメントは、SherlockFragmentActivity でホストされます。
AndroidManifest.xml
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="14" />
<permission android:name="com.wimedias12.orderr.MAPS_RECEIVE" android:protectionLevel="signature" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="com.wimedias12.orderr.MAPS_RECEIVE" />
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.VPI" >
<uses-library android:name="com.google.android.maps" />
....
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaXxXxXXXxXxxXx-WHmjbRpFz4eOqWBXdqUtQ" />
</application>
ライブラリが適切に参照されていることを確認するためだけに、ここに私のプロジェクト プロパティを示します。
どんな助けでも大歓迎です。ありがとう!
アップデート:
@CommonsWareの答えは正しいものです。しかし、私は Android Studio 、つまり IntelliJ Idea を使用しているため、それを機能させる方法に答える必要があると感じています。
[プロジェクト構造] ウィンドウからすべての参照を削除し、1 つずつ再度追加しましたが、何とか機能しました。構成は上に示した画像と同じです。IntelliJ がライブラリを参照する際に問題があったと思います。
したがって、ライブラリの正しい参照が答えです。
PS私はSherlockFragmentでMapViewを使用することになりました。助けてくれてありがとう。