2017-02-19 9 views
1

2〜3週間、私は実際のAndroid搭載端末で開発中のアプリを使用していました。これまでは、常にGoogleマップをデバイス上に表示し、OSMはシミュレータ上に表示していました。コードネーム1のAndroidデバイスのLayeredLayoutにネイティブマップが表示されない

今日、マップの上にボタンを追加してビルドを送信しました。 CN1およびCN1libは、ビルドが送信される前に更新されました。今私がデバイス上でそれをテストすると、マップは表示されず、私は404:見つからないを取得します。シミュレータの動作について尋ねると、期待どおりに動作します(ただし、MapComponentでOSMが使用されます)。ここで

がダウンしてマップを築くために私のコードは、(マップの初期化が変更されていない)である。

Container mapWithButton = LayeredLayout.encloseIn(BorderLayout.centerCenter(googleMap), 
FlowLayout.encloseRight(locateMeButton)); 
this.add(BorderLayout.CENTER, mapWithButton); 

私はMapContainer historyを見て持っていたが、最近の変化はわずかlongPressListenerを扱います。ネイティブの地図アプリは端末でうまく機能しています。 DDMSによるデバッグは役に立ちませんでした(同じエラーが画面に表示されます)。

ビルドヒントを更新または追加するのを忘れましたか?

助けてください。

+0

これは、あなたが使用した証明書の許可または変更に関連するかもしれません、ネイティブGoogleマップは特定の証明書とアクセス許可にバインドされていますが、Googleクラウド設定やこのエラーの原因となるアプリで何かが変更されている可能性があります。これをデバッグするには、デバイスをケーブルで接続し、ddms /それがどこにリストされるべきであるかlogcat出力 –

+0

もし何も変更せずに、私が 'this.add(BorderLayout.CENTER、googleMap);'(LayeredLayoutを使う代わりに)地図が再び表示されます。 – HelloWorld

答えて

1

最終的に404エラーはマップとは関係ありませんでしたが、マップを移動するときにまだ利用できないアドレスからデータをフェッチしようとしていたMapListenerが追加されました。

マップを実際に作成するという事実は、BorderLayout.center()で囲む必要があり、BorderLayout.centerCenter()代替ではありません。

ので(私が提供する何の説明がありませんが、期待通りに次のコードでは、マップやボタンを表示BorderLayout.center代わりのBorderLayout.centerCenterに注意してください。

Container mapWithButton = LayeredLayout.encloseIn(
             BorderLayout.center(googleMap), 
             FlowLayout.encloseRight(locateMeButton)); 

this.add(BorderLayout.CENTER, mapWithButton); 
+1

'BorderLayout.centerCenter()'はコンポーネントの推奨サイズを返します。ネイティブコードは独自のスレッドで動作するので、ゼロにすることができます。 'BorderLayout.center()'が動作します。 –

関連する問題