簡體   English   中英

響應式網站的Android應用在真實手機上加載時崩潰

[英]Android app for a responsive web site crashes on load up on real phone

這是我第一次嘗試Android編碼。 我們有一個響應迅速的網站,我稱自己為Android應用程序編寫代碼,以便人們下載該應用程序並訪問我們的網站后,只需單擊該圖標即可。 在Simulator上,該應用程序可以在各種測試手機上正常運行,但是當我上傳APK進行分發並且有人下載並嘗試運行它時,它甚至在看到啟動屏幕之前便崩潰了。 有人可以看看我的代碼,然后告訴我怎么了。 它似乎僅在Android軟件版本6.0或更高版本上崩潰。 在舊手機和平板電腦上,它運行良好。 這是來自Android Studios 3.2.1版的“ SplashScreenActivity.java,MainActivity.java和AndroidManifest.xml”的副本。任何幫助將不勝感激。

SplashScreenActivity.java

    package com.wastefreemail.wfmconnect;
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Window;
    import android.view.WindowManager;
    public class SplashScreenActivity extends AppCompatActivity {

    private int SLEEP_TIMER = 3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);




        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_splash_screen);
        getSupportActionBar().hide();


        LogoLauncher logoLauncher = new LogoLauncher();
        logoLauncher.start();


    }

    private class LogoLauncher extends Thread{
      public void run(){
          try{
              sleep(1000 * SLEEP_TIMER);
          }catch(InterruptedException e){
              e.printStackTrace();

          }

          Intent intent = new Intent(SplashScreenActivity.this,         MainActivity.class);
          startActivity(intent);
          SplashScreenActivity.this.finish();
      }
    }
}

MainActivit.java

    package com.wastefreemail.wfmconnect;


    import android.app.Activity;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Window;
    import android.view.WindowManager;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;



    public class MainActivity extends Activity {

    public WebView web1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        WebView web1 = (WebView)findViewById(R.id.web1);
        WebSettings webSettings = web1.getSettings();
        webSettings.setJavaScriptEnabled(true);
        web1.loadUrl("https://www.wastefreemail.com");
        web1.setWebViewClient(new WebViewClient());
    }
 }

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wastefreemail.wfmconnect">

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">

    </activity>
    <activity android:name=".SplashScreenActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

</manifest>

嘗試這個,

在此處輸入圖片說明

清單文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.chetan.testapp">

    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

MainActivity.java

package com.wastefreemail.wfmconnect;



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



public class MainActivity extends Activity {

    public WebView web1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       // requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        web1 = (WebView)findViewById(R.id.webView);
        WebSettings webSettings = web1.getSettings();
        webSettings.setJavaScriptEnabled(true);
        web1.loadUrl("http://www.wastefreemail.com/");
        web1.setWebViewClient(new WebViewClient());
    }
}

XML

<WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/webView"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

希望能對您有所幫助。

您的閃屏活動似乎有問題。 嘗試下面的代碼,讓我知道進一步的更新。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_splash_screen);

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {

            Intent intent = new Intent(SplashScreenActivity.this,MainActivity.class);
            startActivity(intent);
            finish();
        }
    },5000); //here 5000 represents 5 seconds. Change this according to your need.
}

編輯

如果仍然無法使用,請在styles.xml文件中創建新樣式。

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

並將此樣式應用於manifest.xml文件中的活動。

<activity
    android:name=".SplashScreenActivity"
    android:theme="@style/AppTheme.NoActionBar" />

編輯

該SupportActionBar方法拋出Null Pointer異常。 在您的啟動活動中使用此代碼。 它將解決問題。

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_splash_screen);
    try{
        getSupportActionBar().hide();
    } catch (NullPointerException e){
        e.printStackTrace();
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM