0

地図アプリを開発しました。マニフェストXMLに追加しました<uses-library android:name="com.google.android.maps" /> これにより、モバイルデバイスとエミュレーターで正常に動作します。

しかし、kindle fire デバイスでは動作しません<uses-library android:name="com.google.android.maps" />。マニフェストから削除すると、kindle fire で正常に動作します。

<uses-library android:name="com.google.android.maps" />マニフェスト ファイルから削除して Google マップを使用する方法はありますか。

マニフェスト XML に記述せずにこのライブラリ リファレンスを使用する方法。

4

3 に答える 3

2

uses-library十分に使用さrequiredれていない属性があります。

使用-ライブラリドキュメント

したがって:

    <uses-library
        android:name="com.google.android.maps"
        android:required="false" />

これをfalseに設定すると、アプリはKindle Fireに正常にインストールされますが、マップライブラリが実際には存在しないため、マップAPI呼び出しは失敗します。これを回避するには、APIが存在しないときにAPIを呼び出さないようにコードを保護する必要があります。私自身、次のようなコードを使用しています。

    protected boolean mapsAvailable() {
            try {
                    Class.forName("com.google.android.maps.MapView");

                    return true;
            } catch (ClassNotFoundException exception) {
                    return false;
            }
    }

mapsAvailableがfalseを返した場合は、MapViewを使用してアクティビティに移動したり、MapsAPIクラスを呼び出したりしないでください。

于 2012-05-21T19:39:30.693 に答える
0

このコードを入れるだけ

String geoAddress  = "geo:" + ll[0] + ","+ ll[1] + "?z=15";
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(geoAddress));
                context.startActivity(intent);

マニフェストに許可を追加します

于 2012-04-12T11:28:58.047 に答える
0

Maps API を使用するには、そのライブラリへの参照を提供する必要があります。そうしないと、NoClassDefFoundError例外がスローされます。これを読んでください。

于 2012-04-12T11:29:08.367 に答える