React Native Android 启动画面
React Native Android Splash Screen
我正在尝试为 Android RN 应用构建启动画面。
我已按照此处描述的步骤进行操作:https://www.bignerdranch.com/blog/splash-screens-the-right-way/
不幸的是,当尝试启动我的应用程序时,构建成功但应用程序崩溃并提示:
Error type 3
Error: Activity class {com.needlios/com.needlios.MainActivity} does not exist.
有人知道这可能来自哪里吗?
我有以下代码:
SplashScreen.java
package com.needlios;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
}
MainActivity.java
package com.needlios;
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import java.util.Arrays;
import java.util.List;
public class MainActivity extends ReactActivity {
/**
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "NeedlIOS";
}
/**
* Returns whether dev mode should be enabled.
* This enables e.g. the dev menu.
*/
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
/**
* A list of packages used by the app. If the app uses additional views
* or modules besides the default ones, add more packages here.
*/
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
);
}
}
AndroidManifest.xml
<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>
好的,现在可以了。我刚刚在 AndroidManifest.xml
中将 android:name
更改为 android:name=".MainActivity"
它可以工作,但我不明白为什么它会显示启动画面...
您无法在 ract-native 脚本中创建启动画面,您需要深入到本机实现。
要制作简单的启动画面,您需要在主 activity 使用的主题上设置 "android:windowBackground"。以这种方式,它们将显示给用户,直到您的 react-native 视图完全加载。
这是关于如何操作的 article。
只是为了分享,因为我也开始工作了。
的变化
android:name
到
android:name=".MainActivity" in AndroidManifest.xml
正在运行,因为整个背景已修改为 Splashscreen 主题。这可能不是一个好的解决方案,就好像 backgroundColor 从任何屏幕上都被删除了一样;将出现此初始屏幕背景。最终,当您需要与某些相机功能集成时,它会导致一些不需要的显示。 :(
大部分代码都基于此 link,只是删除了 activity。如果有人在搜索,请添加 values/colors.xml 和 drawable/backgroundsplash.xml.
我正在尝试为 Android RN 应用构建启动画面。 我已按照此处描述的步骤进行操作:https://www.bignerdranch.com/blog/splash-screens-the-right-way/
不幸的是,当尝试启动我的应用程序时,构建成功但应用程序崩溃并提示:
Error type 3
Error: Activity class {com.needlios/com.needlios.MainActivity} does not exist.
有人知道这可能来自哪里吗?
我有以下代码:
SplashScreen.java
package com.needlios;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
}
MainActivity.java
package com.needlios;
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import java.util.Arrays;
import java.util.List;
public class MainActivity extends ReactActivity {
/**
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "NeedlIOS";
}
/**
* Returns whether dev mode should be enabled.
* This enables e.g. the dev menu.
*/
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
/**
* A list of packages used by the app. If the app uses additional views
* or modules besides the default ones, add more packages here.
*/
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
);
}
}
AndroidManifest.xml
<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>
好的,现在可以了。我刚刚在 AndroidManifest.xml
中将android:name
更改为 android:name=".MainActivity"
它可以工作,但我不明白为什么它会显示启动画面...
您无法在 ract-native 脚本中创建启动画面,您需要深入到本机实现。 要制作简单的启动画面,您需要在主 activity 使用的主题上设置 "android:windowBackground"。以这种方式,它们将显示给用户,直到您的 react-native 视图完全加载。 这是关于如何操作的 article。
只是为了分享,因为我也开始工作了。
的变化android:name
到
android:name=".MainActivity" in AndroidManifest.xml
正在运行,因为整个背景已修改为 Splashscreen 主题。这可能不是一个好的解决方案,就好像 backgroundColor 从任何屏幕上都被删除了一样;将出现此初始屏幕背景。最终,当您需要与某些相机功能集成时,它会导致一些不需要的显示。 :(
大部分代码都基于此 link,只是删除了 activity。如果有人在搜索,请添加 values/colors.xml 和 drawable/backgroundsplash.xml.