我在Android上的启动画面有问题。以下是我正在做的一切:
创建background_splash.xml文件:
xml version =" 1.0"编码=" UTF-8"> layer-list xmlns:android =" http://schemas.android.com/apk/res/android">
<item
android:drawable="@android:color/darker_gray"/>
<item>
<bitmap
android:gravity="center"
android:src="@drawable/splash"/>
</item>
我删除&lt;在前两行中,因为stackoverflow无法显示它们。此文件位于drawable。
我在styles.xml中添加了以下内容:
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/background_splash</item>
</style>
这是我的清单文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="22" />
<application
android:name=".MainApplication"
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:theme="@style/AppTheme">
<activity
android:name=".SplashActivity"
android:label="@string/app_name"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity" />
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest>
还有活动:
import android.content.Intent;
import android.os.Bundle;
import com.facebook.react.ReactActivity;
public class SplashActivity extends ReactActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
}
这是我的错误:
Starting the app on 51d123cc (adb -s 51d123cc shell am start -n com.test/.MainActivity)...
Starting: Intent { cmp=com.test/.MainActivity }
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.test/.MainActivity } from null (pid=20601, uid=2000) not exported from uid 11152
at android.os.Parcel.readException(Parcel.java:1540)
at android.os.Parcel.readException(Parcel.java:1493)
at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:2589)
at com.android.commands.am.Am.runStart(Am.java:768)
at com.android.commands.am.Am.onRun(Am.java:307)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
at com.android.commands.am.Am.main(Am.java:102)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:255)
更新:
对于@Ankit Prajapati的答案,我还要加上我设置
机器人:largeHeap =&#34;真&#34;
这是来自Android Studio的错误(从终端运行此错误未报告),这是在将活动更改为SplashActivity之后发生的。
还需要更改编辑配置并更改&#34;启动活动&#34;到&#34;指定的活动&#34;并设置com.test.SplashActivity。
在Android上管理启动画面的第二种方法是我现在使用的是本教程:
答案 0 :(得分:1)
尝试在
中使用此功能android:exported =“true”在您尝试启动的活动的清单文件中(正在加载活动) 喜欢这个
<activity
android:name=".SplashActivity"
android:label="@string/app_name"
android:theme="@style/SplashTheme"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
同时添加
Intent intent = new Intent(SplashActivity.this, MainActivity.class);