【发布时间】:2026-01-21 20:10:01
【问题描述】:
这是我第一次尝试 Android 编码。我们有一个响应式网站,我称自己为 Android 应用程序编写代码,以便人们在下载应用程序后单击图标并访问我们的网站。在模拟器上,该应用程序在各种测试手机上运行良好,但是当我上传 APK 进行分发并且有人下载并尝试运行它时,它甚至在看到启动屏幕之前就崩溃了。有人可以看看我的代码并告诉我出了什么问题。它似乎只在 Android 软件版本 6.0 或更高版本上崩溃。在旧手机和平板电脑上运行良好。这是我的“SplashScreenActivity.java、我的 MainActivity.java 和我的 AndroidManifest.xml 来自 Android Studios 版本 3.2.1 的副本。任何帮助将不胜感激。
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>
【问题讨论】:
-
分享您的构建 gradle 文件,以便我们查看您的最低和最高 sdk 版本。
-
如果可能的话,将一部真正的安卓手机连接到您的电脑并在此处发布 logcat。
-
Zankrut,这是我的 build.gradle 的副本(模块:app)应用插件:'com.android.application' android { compileSdkVersion 28 defaultConfig { applicationId "com.wastefreemail.wfmconnect" minSdkVersion 15 targetSdkVersion 28 versionCode 10 versionName "1.2.7" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
-
Zankrut,我注意到该应用程序适用于某些手机,但不适用于其他手机。这是我当前的列表:它适用于以下设备:三星 8.0、LG 8.1、LG 7.0、阿尔卡特 8.1。以下它不起作用:三星8.1,摩托罗拉8.1。我很惊讶相同的软件版本可以在某些手机上运行,但在其他手机上不行,我能做些什么让它在所有或大部分手机上运行?