2016-08-21 15 views
0

Googleマップを追加しようとしています。ただし、Build> Generate Signed apkからAPKを作成して実際のデバイスにインストールすると、アクティビティは空白の画面しか表示されず、Googleロゴは左下に表示されます。次のコードに問題がありますか?Googleマップを追加する - 空白の画面しか表示されない

ノート APIキーgoogle_maps_api.xmlとのstrings.xmlの両方であり、以下のコードでAPIキーは

のAndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.thesis.cutaneous.testapp1"> 

<permission 
    android:name="com.thesis.cutaneous.testapp1.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature"/> 

<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true" /> 

<uses-permission android:name="com.thesis.cutaneous.testapp1.permission.MAPS_RECEIVE" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".MapsActivity" 
     android:label="@string/title_activity_maps"> 
     <intent-filter> 
      <action android:name="com.thesis.cutaneous.testapp1.MapsActivity" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 
    <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 
    <meta-data 
     android:name="com.google.android.geo.API_KEY" 
     android:value="@string/google_maps_key" /> 
</application> 
</manifest> 

のGradle(モジュールが示されていません)

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 24 
    buildToolsVersion '24.0.1' 

defaultConfig { 
    applicationId "com.thesis.cutaneous.testapp1" 
    minSdkVersion 16 
    targetSdkVersion 24 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:24.2.0' 
    compile 'com.google.android.gms:play-services-maps:9.4.0' 
} 

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.thesis.cutaneous.testapp1.MainActivity"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hello World!" 
    android:id="@+id/textView" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Button" 
    android:id="@+id/button" 
    android:layout_below="@+id/textView" 
    android:layout_centerHorizontal="true" /> 
</RelativeLayout> 

activity_main.xml

のGradle(プロジェクト)

buildscript { 
    repositories { 
     maven { url 'http://repo1.maven.org/maven2' } 
     jcenter { url 'http://jcenter.bintray.com/' } 
    } 
dependencies { 
    classpath 'com.android.tools.build:gradle:2.1.3' 
} 
} 

allprojects { 
    repositories { 
     maven { url 'http://repo1.maven.org/maven2' } 
     jcenter { url 'http://jcenter.bintray.com/' } 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

MainActivity.java

package com.thesis.cutaneous.testapp1; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity { 
    private static Button btn1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     btn1 = (Button) findViewById(R.id.button); 
     btn1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       startActivity(new Intent("com.thesis.cutaneous.testapp1.MapsActivity")); 
     } 
    }); 
} 
} 

MapsActivity.java

package com.thesis.cutaneous.testapp1; 

import android.support.v4.app.FragmentActivity; 
import android.os.Bundle; 

import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.OnMapReadyCallback; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 
    private 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; 

    LatLng Angeles = new LatLng(15.1427956, 120.5977875); 
    mMap.addMarker(new MarkerOptions().position(Angeles).title("Marker in Angeles")); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(Angeles)); 
} 
} 

activity_maps.xml

<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.thesis.cutaneous.testapp1.MapsActivity" /> 
+0

空白の画面がある場合はuが –

+0

logcat見ていたが、私はやや疑問のAndroid Studioが問題です。そこにコードを書くだけです。コードがコンパイルされると、IDEのコントロールの外にある –

+0

どこにアクセスできますか?私は、アプリケーションが実行されているときにPCに接続されていないデバイスのみを使用しています。 – Cutaneous

答えて

0

白地図は、間違ったgoogle_maps_keyによって引き起こされます。デバッグ用とリリースビルド用の2種類のキーがあります。両方ともhttps://console.developers.google.com/に登録する必要があります。プロジェクトディレクトリ内でこのような何かを実行して、解除キーを決定するには:

"c:\Program Files\Java\jdk1.8.0_20\bin"\keytool -list -v -keystore keystore.jks 
関連する問題