添加启动画面活动时“客户端尚未准备好”
Posted
技术标签:
【中文标题】添加启动画面活动时“客户端尚未准备好”【英文标题】:"Client not ready yet" when adding splashscreenactivity 【发布时间】:2016-10-10 11:24:13 【问题描述】:我想向我的应用添加启动画面活动。
我使用的是 android Studio 2.2,预览版 3
我只是修改我的清单,添加新的活动:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="me.youactive.hts.youactive">
<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"
android:label="YouactiveSlidingMenu"
android:screenOrientation="portrait">
</activity>
<activity
android:name=".SplashScreenActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
这是我的 SplashScreenActivity.java
package me.youactive.hts.youactive;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class SplashScreenActivity extends AppCompatActivity
private final int SPLASH_DISPLAY_LENGTH = 3000;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.splashscreen);
@Override
protected void onResume()
super.onResume();
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
// Obtain the sharedPreference, default to true if not available
boolean isSplashEnabled = sp.getBoolean("isSplashEnabled", true);
if (isSplashEnabled)
new Handler().postDelayed(new Runnable()
@Override
public void run()
//Finish the splash activity so it can't be returned to.
SplashScreenActivity.this.finish();
// Create an Intent that will start the main activity.
Intent mainIntent = new Intent(SplashScreenActivity.this, MainActivity.class);
SplashScreenActivity.this.startActivity(mainIntent);
, 3000);
else
// if the splash is not enabled, then finish the activity immediately and go to main.
finish();
Intent mainIntent = new Intent(SplashScreenActivity.this, MainActivity.class);
SplashScreenActivity.this.startActivity(mainIntent);
如果我改变我的清单,并把它放在 MainActivity 周围,应用程序就会成功启动
在我的运行窗口中,我可以看到这条消息:
adb shell am start -n "me.project.com.project/me.project.com.project.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER 客户还没有准备好..
我在 SO 中读过一些类似的问题,在 Manifest 中添加“android:exported="true" 可以解决这个问题,但在我的情况下不会。
【问题讨论】:
与你的代码无关。这是因为您的模拟器/设备尚未准备好。尝试在AS终端做adb kill-server
和adb start-server
,然后再试一次
我只在我的设备上运行我的应用程序,我从不使用任何模拟器。我尝试输入您的命令,但它不会改变任何内容
【参考方案1】:
您的 wifi 连接可能是导致此错误的原因。
在进行任何与代码相关的更改之前,重新连接到您的 wifi 可能是个好主意。
【讨论】:
以上是关于添加启动画面活动时“客户端尚未准备好”的主要内容,如果未能解决你的问题,请参考以下文章