我在Android Studio中設置了標準的地圖活動。然後我需要添加一個'包裝器'類,以便我可以實現與MapsActivity的OnMapReadyCallback不同的類。此包裝類沒有可視組件,不應創建視圖,然後調用MapsActivity來創建地圖視圖。如何在AndroidManifest.xml中指定包裝類
所有內容都會編譯,但運行時不會顯示任何視圖。
如果我在創建映射之後將quit looper從dispose移動到MReady,我只在日誌中獲得以下行。
E/ConnectivityService:RemoteException的發現試圖發送一個 回調味精NetworkRequest [ID = 10,legacyType = -1,[ 功能:INTERNET & NOT_RESTRICTED & TRUSTED]
但仍沒有視圖出現。下面的代碼更新到最新。我的Log.d/i消息也沒有出現在日誌中,儘管它設置爲冗長。
代碼 - 的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.booxotel.smallgminterface">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:name = ".SmallMap">
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<activity
android:name="com.booxotel.smallgminterface.MapsActivity"
android:label="@string/title_activity_maps">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
SmallMap.java(的一部分)
public class SmallMap extends Application implements FREExtension {
public static final String TAG = "MapInterface";
private static GoogleMap gMap;
private static LatLng cmap;
private static MarksData md;
private Handler mHandler;
public static FREContext extensionContext;
public static Context appContext;
public static SettingsContentObserver mSettingsWatcher;
public ShowMap shm;
@Override
public void onCreate() {
super.onCreate();
appContext = getApplicationContext();
}
public class ShowMap extends Thread {
ShowMap() {
prepareThread(false);
}
public void prepareThread(Boolean quit){
Log.i(TAG, "prepare thread");
if (gMap == null && !quit) {
Looper.prepare();
mHandler = new Handler();
Intent intent = new Intent(SmallMap.appContext, MapsActivity.class);
appContext.startActivity(intent);
}else if(quit) {
Looper.myLooper().quit();
}
Looper.loop();
}
}
public class MReady implements MapReadyEvent {
@Override
public void MapReady() {
gMap = MapsActivity.getMap();
shm.prepareThread(true);
Log.i(TAG, "map ready");
extensionContext.dispatchStatusEventAsync("mapReady", "true");
}
}
@Override
public FREContext createContext(String contextType) {
shm = new ShowMap();
shm.prepareThread(false);
return new MapInterfaceContext();
}
@Override
public void dispose() {
Log.d(TAG, "Extension disposed.");
Context context = appContext.getApplicationContext();
context.getContentResolver().unregisterContentObserver(mSettingsWatcher);
appContext = null;
extensionContext = null;
mSettingsWatcher = null;
}
@Override
public void initialize() {
Log.d(TAG, "Extension initialized.");
}
}
MapsActivity.java
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
public static GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
MapReadyEvent mre = new MapReadyEvent() {
@Override
public void MapReady() {}
};
mre.MapReady();
}
public static GoogleMap getMap() {
return mMap;
}
}
MapReadyEvent.java
public interface MapReadyEvent {
void MapReady();
}
activity_maps.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="311dp"
android:layout_height="290dp"
android:layout_marginLeft="710dp"
android:layout_marginTop="167dp"
tools:context="com.mysite.testmap.MapsActivity" />
</RelativeLayout>
你能發表一些代碼嗎? –
我自己發現了一些錯誤,現在map仍然沒有出現,但測試完成,logcat只包含一行:未能連接到服務器:java.net.UnknownHostException:無法解析主機「play.googleapis.com」:沒有地址關聯與主機名 – doug777
我不知道哪些部分的代碼我應該發佈幫助。包裝或一些XML文件? – doug777