应用程序在我的设备上运行,但当我将其发布到 Google Play 商店进行 Beta 测试时无法运行

Posted

技术标签:

【中文标题】应用程序在我的设备上运行,但当我将其发布到 Google Play 商店进行 Beta 测试时无法运行【英文标题】:App working on my device but when I publish it to Google Play Store for Beta Testing not working 【发布时间】:2013-05-30 15:53:24 【问题描述】:

昨天我在 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>

【问题讨论】:

任何 logcat 警告或错误? 没什么,Logcat 看起来不错 现在,我修复了 Facebook 部分。我错过了新密钥库的哈希键。但现在我看不到地图,我使用的是 Google Maps API V2。我在 Logcat 中收到此错误“确保以下内容与 api 控制台中的内容相对应” 【参考方案1】:

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

另外,请参阅this,了解为已签名包的调试和发布版本创建一个 Maps API 密钥的方法。

【讨论】:

【参考方案2】:

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

【讨论】:

你这是什么意思。什么是沙盒模式? @MartiSerraMolina 您需要将您的 facebook 应用程序切换到实时模式(在 2013 年,它默认为仅适用于调试版本的沙盒模式。但这个答案现在已经过时了

以上是关于应用程序在我的设备上运行,但当我将其发布到 Google Play 商店进行 Beta 测试时无法运行的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 494 蛮力递归解决方案将变量作为属性使用,但当我将其作为参数传递时不起作用

应用程序在第一次运行时崩溃加载数据库

iOS 今日视图未在设备上运行

我的应用程序在设备上运行缓慢是因为我使用的图像以及如何删除硬编码的宽度和高度

iOS9:在模拟器和设备上使用动态框架

当我将屏幕大小调整为移动设备时,我的网站移动视图在桌面上正确显示隐藏元素,但在我的手机上它们没有隐藏