我试图在一个非常简单的应用程序(一个只有谷歌地图活动的新项目)中显示谷歌地图,清单具有以下权限:
<manifest xmlns:androID="http://schemas.androID.com/apk/res/androID" package="com.example.ivan.pruebamaps"><uses-permission androID:name="androID.permission.ACCESS_FINE_LOCATION" /><uses-permission androID:name="androID.permission.INTERNET" /><applicationandroID: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"><Meta-data androID:name="com.Google.androID.geo.API_KEY" androID:value="@string/Google_maps_key" /><activity androID:name=".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>
我在@ string / Google_maps_key中有一个有效的密钥.
它没有触及mainActivity,就像它在androID studio中创建的一样.
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {private GoogleMap mMap;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_maps); // Obtain the SupportMapFragment and get notifIEd when the map is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentByID(R.ID.map); mapFragment.getMapAsync(this);}@OverrIDepublic voID onMapReady(GoogleMap GoogleMap) { mMap = GoogleMap; // Add a marker in Sydney and move the camera LatLng sydney = new LatLng(-34, 151); mMap.addMarker(new MarkerOptions().position(sydney).Title("Marker in Sydney")); mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));}}
布局文件activity_maps也是如此:
<fragment xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:map="http://schemas.androID.com/apk/res-auto" xmlns:tools="http://schemas.androID.com/tools" androID:ID="@+ID/map" androID:name="com.Google.androID.gms.maps.SupportMapFragment" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" tools:context="com.example.ivan.pruebamaps.MapsActivity" />
这是我的gradle文件,如果有帮助:
apply plugin: 'com.androID.application'androID { compileSdkVersion 25 buildToolsversion "25.0.2" defaultConfig { applicationID "com.example.ivan.pruebamaps" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionname "1.0" testInstrumentationRunner "androID.support.test.runner.AndroIDJUnitRunner" } buildTypes { release { MinifyEnabled false proguardfiles getDefaultProguardfile('proguard-androID.txt'), 'proguard-rules.pro' } }}dependencIEs { compile filetree(dir: 'libs', include: ['*.jar']) androIDTestCompile('com.androID.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.androID.support', module: 'support-annotations' }) compile 'com.androID.support:appcompat-v7:25.2.0' compile 'com.Google.androID.gms:play-services-maps:10.2.0' testCompile 'junit:junit:4.12'}
当我执行应用程序时,我只得到一个带有空白屏幕的屏幕,左下角有Google徽标.我正在尝试模拟nexus 5,而在三星galaxy s6中,它们都无法工作.
解决方法:
听起来您正在使用的API密钥是在另一台机器上生成的,该机器具有不同的调试密钥库.
您需要为开发人员控制台中用于API密钥的每台开发机器的调试密钥库添加SHA1指纹.
除此之外,一旦您准备好进行签名发布构建,请确保在API密钥中使用SHA1指纹作为发布密钥库,该密钥将进入Google_maps_API.xml文件的发行版本. See here获取更多信息.
总结以上是内存溢出为你收集整理的android – 谷歌地图显示空白屏幕全部内容,希望文章能够帮你解决android – 谷歌地图显示空白屏幕所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)