Android 应用程序拒绝连接到后端
我正在开发一个名为TobaccoRoad的应用程序,它使用了一个名为BestApproach的图书馆项目。它使用解析后端来显示自定义生成的内容并处理推送通知。直到几天前,一切都很正常,当时我肯定把一些设置搞砸了,它似乎不再连接到解析系统。我很确定这是一个本地问题,因为我的第二部测试手机在几天内还没有更新代码,它仍然收到通知,可以查看自定义内容 奇怪的是,即使在清理了我的工作区,重新开始使用我的雇主给我的(绝对不错的)代码,并且遵循Parse.com上的所有教程和故障排除指南(参见;)之后,我仍然没有连接到Parse。我还没有做出任何我能回忆起的重大改变,所以我不知道是什么导致了这一点 我知道这不是一个错误的applicationID或clientKey的问题,因为即使将随机字符串替换到Parse.initialize调用中,也会得到相同的结果,并且会出现无法进行身份验证的logcat错误 以下是我清单文件中的相关部分,首先是库项目Android 应用程序拒绝连接到后端,android,parse-platform,Android,Parse Platform,我正在开发一个名为TobaccoRoad的应用程序,它使用了一个名为BestApproach的图书馆项目。它使用解析后端来显示自定义生成的内容并处理推送通知。直到几天前,一切都很正常,当时我肯定把一些设置搞砸了,它似乎不再连接到解析系统。我很确定这是一个本地问题,因为我的第二部测试手机在几天内还没有更新代码,它仍然收到通知,可以查看自定义内容 奇怪的是,即使在清理了我的工作区,重新开始使用我的雇主给我的(绝对不错的)代码,并且遵循Parse.com上的所有教程和故障排除指南(参见;)之后,我仍然
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bestapproach.lib"
android:versionCode="8"
android:versionName="1.6.1">
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application android:icon="@drawable/app_icon" android:label="@string/app_name"
android:theme="@style/Theme.BA" >
<activity android:name="com.bestapproach.lib.SplashActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="orientation"
android:theme="@style/Theme.BA.Splash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!--Declarations for all of my Activities...-->
<service android:name="com.parse.PushService" />
<receiver android:name="com.parse.ParseBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
</application>
</manifest>
我发现的建议似乎与我所需要的内容相符,包括在每个活动的onCreate()
中运行Parse.initialize()
,这是我不想做的,因为它们太多了,可能会有很多重复的代码,或者生成一个应用程序对象并从那里运行它。由于TobaccoRoad对library项目的依赖性,一旦我将它添加到清单文件中,我尝试过的与之相关的一切都以失败告终
我知道,这是一个很大的挖掘,但任何建议将不胜感激。谢谢大家。可能的解决方案:
换行
if (!("".equals(parseClientId) || "".equals(parseAppId))) {
Parse.initialize(this, parseAppId, parseClientId);
为此:
if (!("".equals(parseClientId) || "".equals(parseAppId))) {
Parse.initialize(SplashActivity.this, parseAppId, parseClientId);
问题是
ParseAnalytics.trackAppOpened(getIntent());
从您的SplashActivity和应用程序范围接受该活动的意图 此外,您还可以从活动中初始化解析,而我们通常不会这样做。 我们尝试从应用程序类初始化解析,以便它具有应用程序范围的上下文,而不是活动范围的上下文。 我建议您创建一个应用程序类,并在应用程序的onCreate中包含解析代码……您只需要执行一次 或者,您可以创建一些基本活动,并使应用程序中的所有活动都扩展到该活动。这将避免您编写重复的代码…这只是为了防止您必须不创建应用程序类
请原谅我有任何错误…我是新来回答的。您已经将您的
AppId
和ClientId
与解析云中的实际值进行了比较?这不起作用…因为这只是发生在我的手机上,我只是手动将值输入到我正在运行的版本中。现在还可以。谢谢你。如果我发现了其他问题,我将进行更新。从您的SplashActivity而不是从应用程序范围接受该活动的意图
if (!("".equals(parseClientId) || "".equals(parseAppId))) {
Parse.initialize(SplashActivity.this, parseAppId, parseClientId);
ParseAnalytics.trackAppOpened(getIntent());