10

アプリをリリースしようとしていますが、Google マップに問題があります。アプリには、マップを表示するアクティビティ (MapActivity) が含まれています。デバッグ モードで実行すると、マップは正常に動作します。リリース モードでアプリに署名し、SHA1 を取得しました。必要に応じて、Google コンソールで新しい Android キーを作成しました (SHA1;packageName)。APIキーを取得しました

私のアプリでは、必要に応じて google-play-services-lib のコピーを参照しました。ADTを使用しています。

map.xml

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.SupportMapFragment" />

MapActivity.java

public class MapActivity extends FragmentActivity {

private GoogleMap map;

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

    map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                        .getMap();
  }

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rentalcar"
android:versionCode="1"
android:versionName="1.0" >



<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

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

<permission
      android:name="com.example.rentalcar.permission.MAPS_RECEIVE"
      android:protectionLevel="signature"/>
    <uses-permission android:name="com.example.rentalcar.permission.MAPS_RECEIVE"/>


<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
     >

    <activity
        android:name="com.example.rentalcar.MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter> 
    </activity>      

    <activity
        android:name="com.example.rentalcar.MapActivity"
        android:label="@string/title_activity_map"
        android:screenOrientation="portrait" >
    </activity>

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="My_Key"/>

</application>

</manifest>

唯一の奇妙な点は、keytool を使用して SHA1 を取得すると、「署名アルゴリズム名: SHA256withRSA. これが問題になる可能性がありますか? はいの場合、どうすれば変更できますか?

keytool を使用して証明書のフィンガープリントを取得する

私はここで立ち往生しています!助けてくれてありがとう!

4

8 に答える 8

10

マップ API V2 では、リリース バージョンとデバッグ バージョンの間で変更される唯一のものは、ここで登録するキーですhttps://code.google.com/apis/console/

デバッグが機能していて、最終リリースが機能していない場合、必要な変更はこれだけです。

そのため、リリース キーストアのハッシュ コードを再確認し、Google API コンソールに正しく入力されていることを確認することをお勧めします。

于 2013-03-05T09:47:47.080 に答える
0

データを消去して (設定 -> アプリ - アプリを選択 - データを消去 -> アンインストール)、試してみてください。これは私のために働いた。パッケージ名が Google 開発者コンソールと同じであることを確認してください。カスタム キーストアから SHA1 コードを作成した場合は、リリース モードで同じものを使用します。または、同じキーストアで署名して apk を生成します。

于 2015-05-12T09:58:16.277 に答える