Android应用程序在运行后显示黑屏

时间:2014-06-06 03:20:50

标签: java android xml eclipse

当我在Eclipse上单击“作为Android应用程序运行”时,控制台中会显示以下内容

[2014-06-05 20:07:18 - StudentConnect] Android Launch!
[2014-06-05 20:07:18 - StudentConnect] adb is running normally.
[2014-06-05 20:07:18 - StudentConnect] Performing sandhu.student.connect.SplashActivity activity launch
[2014-06-05 20:07:18 - StudentConnect] Using default Build Tools revision 19.0.0
[2014-06-05 20:07:18 - StudentConnect] Refreshing resource folders.
[2014-06-05 20:07:18 - StudentConnect] Using default Build Tools revision 19.0.0
[2014-06-05 20:07:18 - StudentConnect] Starting incremental Pre Compiler: Checking resource changes.
[2014-06-05 20:07:18 - StudentConnect] Nothing to pre compile!
[2014-06-05 20:07:18 - StudentConnect] Starting incremental Package build: Checking resource changes.
[2014-06-05 20:07:18 - StudentConnect] Using default Build Tools revision 19.0.0
[2014-06-05 20:07:18 - StudentConnect] Skipping over Post Compiler.
[2014-06-05 20:07:20 - StudentConnect] Application already deployed. No need to reinstall.
[2014-06-05 20:07:20 - StudentConnect] Starting activity sandhu.student.connect.SplashActivity on device 0f0898b2
[2014-06-05 20:07:21 - StudentConnect] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=sandhu.student.connect/.SplashActivity }
[2014-06-05 20:07:21 - StudentConnect] ActivityManager: Warning: Activity not started, its current task has been brought to the front

部署到我的手机后,它只显示黑屏。我最近实现了一个启动画面,但它之前工作得很好;但我认为这可能与问题有关。这是我的java和xml文件:

MainActivity.java

package sandhu.student.connect;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

    public WebView student_zangle;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);  
        WebView student_zangle = (WebView) findViewById(R.id.student_zangle);
        student_zangle.loadUrl("https://zangleweb01.clovisusd.k12.ca.us/studentconnect/");
        student_zangle.setWebViewClient(new WebViewClient());
        student_zangle.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        WebSettings settings = student_zangle.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setBuiltInZoomControls(true);      
        settings.setLoadWithOverviewMode(true);
        settings.setUseWideViewPort(true);
    }


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        WebView student_zangle = (WebView) findViewById(R.id.student_zangle);
        if ((keyCode == KeyEvent.KEYCODE_BACK) && student_zangle.canGoBack()) {
            student_zangle.goBack();
            return true;
        }
        else
        {
            finish();
        }
        return super.onKeyDown(keyCode, event);
    }

}

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/blue"
    tools:context=".MainActivity" >

    <WebView
        android:id="@+id/student_zangle"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

SplashActivity.java

package sandhu.student.connect;


import android.os.Bundle;
import android.preference.PreferenceActivity;

public class SplashActivity extends PreferenceActivity {

    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.prefs);
    }



 }

splash_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/blue"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="250dp"
        android:layout_height="100dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="145dp"
        android:contentDescription="@string/zangle_logo"
        android:src="@drawable/logo" />

</RelativeLayout>

此外,这是logcat错误输出的完整副本:

06-05 20:19:46.698: E/Watchdog(817): !@Sync 1952
06-05 20:20:09.971: E/memtrack(16438): Couldn't load memtrack module (No such file or directory)
06-05 20:20:09.971: E/android.os.Debug(16438): failed to load memtrack module: -2
06-05 20:20:11.012: E/memtrack(16451): Couldn't load memtrack module (No such file or directory)
06-05 20:20:11.012: E/android.os.Debug(16451): failed to load memtrack module: -2
06-05 20:20:11.202: E/EnterpriseContainerManager(817): ContainerPolicy Service is not yet ready!!!

请帮我弄清楚出了什么问题,或者至少指出了我正确的方向。提前谢谢。

2 个答案:

答案 0 :(得分:0)

此消息:“ActivityManager:警告:活动未启动,其当前任务已被置于最前面”意味着adb检测到已经部署了相同的应用程序,因此它只是将应用程序放在前面。 您可以尝试将其从手机中删除,也可以在调试中启动它,以便重新部署应用。

如果你的应用程序在手机上不是最新的,请尝试清理项目。

答案 1 :(得分:0)

这不是错误消息,而是警告。系统试图告诉您的内容:设备上的应用程序与Eclipse中的应用程序相同。并且因为应用程序已经在设备上运行(如果你没有更改代码就不会重新编译,它不会通过卸载 - 安装过程),系统会告诉你它不会被杀死并重新启动它,但将已运行的应用程序的活动带到前台。这很正常。

如果编辑代码并运行它,警告将不会继续(因为应用程序被杀死,重新安装并启动)。

我多次得到这个警告,我使用了一种蹩脚的技术。在代码中的任何位置添加空格(在任何文件中)。只需保存项目并运行即可。然后它将再次进行上传和安装过程。这是最简单的方法,而无需实际更改任何重要的代码。