1

昨天我在 Google Play Store 上发布了我的应用程序作为 Beta 测试。当我在我的设备上从 Eclipse 运行它时,它运行良好,但是当我从 Google Play 商店下载它时,它就不起作用了。

第一个屏幕是一个 Splash Fragment,它显示 Facebook 登录按钮,当我单击它时,它会询问权限,然后它会返回 Splash Fragment(它应该隐藏 Fragment)。

我在另一台设备上对其进行了测试,它隐藏了 Splash Fragment,进入 MainActivity,它告诉我我不在线。

我不明白为什么当我从 Eclipse 运行它时它会起作用,但当我运行从 Google Play 商店下载的版本时它不起作用。

这是我的清单:

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

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="15" />

<permission
    android:name="com.tokensapp.tokens.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.tokensapp.tokens.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<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.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.GET_TASKS" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.BLUETOOTH" >
</uses-permission>

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

<application
    android:name=".ScrumptiousApplication"
    android:icon="@drawable/ic_launcher"
    android:label="@string/tokens" >
    <uses-library
        android:name="com.google.android.maps"
        android:required="true" />

    <service android:name="com.tokensapp.tokens.NotificationService" />

    <activity
        android:name="com.apphance.android.LauncherActivity"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" >
    </activity>
    <activity
        android:name="com.apphance.android.ui.LoginActivity"
        android:launchMode="singleInstance" >
    </activity>
    <activity
        android:name="com.apphance.android.ui.TestCycleActivity"
        android:launchMode="singleInstance" >
    </activity>
    <activity
        android:name="com.apphance.android.ui.ProblemActivity"
        android:configChanges="orientation"
        android:launchMode="singleInstance" >
    </activity>
    <activity
        android:name="com.tokensapp.tokens.ActSplash"
        android:label="@string/tokens"
        android:noHistory="true"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" >
    </activity>
    <activity
        android:name="com.tokensapp.tokens.ActLoginFb"
        android:label="@string/tokens"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" />
    <activity
        android:name="com.tokensapp.tokens.ActWelcome"
        android:label="@string/tokens"
        android:noHistory="true"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" />
    <activity
        android:name="com.tokensapp.tokens.ActMain"
        android:label="@string/tokens"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" />
    <activity
        android:name="com.tokensapp.tokens.ActMain2"
        android:label="@string/tokens"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" >
    </activity>
    <activity
        android:name="com.tokensapp.tokens.ActProfile"
        android:label="@string/tokens"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" >
    </activity>
    <activity
        android:name="com.tokensapp.tokens.ActCompose"
        android:label="@string/tokens"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar"
        android:windowSoftInputMode="stateAlwaysHidden" />
    <activity
        android:name="com.tokensapp.tokens.ActViewToken"
        android:label="@string/tokens"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" />
    <activity
        android:name="com.tokensapp.tokens.ActSettings"
        android:label="@string/tokens"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" />
    <activity
        android:name="com.tokensapp.tokens.ActFriendChooser"
        android:label="@string/tokens"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" />
    <activity
        android:name="com.tokensapp.tokens.BasicMapActivity"
        android:label="@string/title_activity_main" />

    <receiver android:name="com.tokensapp.tokens.BootReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.QUICKBOOT_POWERON" />
        </intent-filter>
    </receiver>

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="@string/maps_key" />
    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/app_id" />

    <activity
        android:name="com.tokensapp.tokens.ActLoginFb2"
        android:label="@string/tokens"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" >
    </activity>
    <activity
        android:name="com.facebook.LoginActivity"
        android:label="@string/tokens"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" >
    </activity>
    <activity
        android:name="com.tokensapp.tokens.MainActivity"
        android:label="@string/tokens"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" >
        <intent-filter>
            <action android:name="com.apphance.android.LAUNCH" >
            </action>

            <category android:name="android.intent.category.DEFAULT" >
            </category>
        </intent-filter>
    </activity>
    <activity
        android:name="PickerActivity"
        android:label="@string/app_name" />
    <activity
        android:name="com.tokensapp.tokens.ActMyTokens"
        android:label="@string/tokens"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" >
    </activity>

    <activity-alias
        android:name=".ApphanceLauncherActivity"
        android:targetActivity="com.apphance.android.LauncherActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" >
            </action>

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

<instrumentation
    android:name="com.apphance.android.ApphanceInstrumentation"
    android:targetPackage="com.tokensapp.tokens" >
</instrumentation>

4

2 回答 2

1

Google 地图要求将 API 密钥构建为应用程序签名密钥。这意味着您用于调试(通过 Eclipse 运行)的 Maps API 密钥将不同于 Maps API 密钥,后者将适用于从 Eclipse 导出并签名以发布到 Play 商店的应用程序。您需要做的就是使用与您签署应用程序相同的密钥获取更新的 Maps API 密钥!

此外,有关为已签名包的调试版本和发布版本创建一个 Maps API 密钥的方法,请参阅此内容。

于 2013-05-30T17:17:50.083 回答
0

确保您的 Facebook 应用程序处于实时模式。

于 2013-05-30T17:30:26.873 回答