【发布时间】:2019-11-25 21:50:54
【问题描述】:
我在我的应用程序中配置了 react-native-firebase 和 crashlytics。 iOS 构建已成功运行。
但是当我第二次运行react-native run-android 时,手机中安装的应用程序却崩溃了,下面是应用程序的adb logcat
I/ActivityManager(611): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.company.mobile/.MainActivity(有附加功能) } 从显示 0 上的 uid 10039 W/AudioTrack(611):AUDIO_OUTPUT_FLAG_FAST 被客户端拒绝 E/libprocessgroup(4404): 无法创建和 chown /acct/uid_10059: 只读文件系统 W/Zygote(4404):createProcessGroup 失败,内核缺少 CONFIG_CGROUP_CPUACCT? 我/艺术(4404):后期启用-Xcheck:jni I/ActivityManager(611): 为活动 com.company.mobile/.MainActivity 启动 proc com.company.mobile: pid=4404 uid=10059 gids={50059, 9997, 3003} abi=x86 D/AndroidRuntime(4404): 关闭虚拟机 E/AndroidRuntime(4404):致命异常:主要 E/AndroidRuntime(4404):进程:com.company.mobile,PID:4404 E/AndroidRuntime(4404):java.lang.RuntimeException:无法实例化应用程序 com.company.mobile.MainApplication:java.lang.ClassNotFoundException:在路径上找不到类“com.company.mobile.MainApplication”:DexPathList [ [zip 文件“/data/app/com.company.mobile-2/base.apk”],nativeLibraryDirectories=[/data/app/com.company.mobile-2/lib/x86, /vendor/lib, /system /lib]] E/AndroidRuntime(4404):在 android.app.LoadedApk.makeApplication(LoadedApk.java:563) E/AndroidRuntime(4404): 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:4491) E/AndroidRuntime(4404): 在 android.app.ActivityThread.access$1500(ActivityThread.java:144) E/AndroidRuntime(4404): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1339) E/AndroidRuntime(4404): 在 android.os.Handler.dispatchMessage(Handler.java:102) E/AndroidRuntime(4404):在 android.os.Looper.loop(Looper.java:135) E/AndroidRuntime(4404): 在 android.app.ActivityThread.main(ActivityThread.java:5221) E/AndroidRuntime(4404):在 java.lang.reflect.Method.invoke(本机方法) E/AndroidRuntime(4404):在 java.lang.reflect.Method.invoke(Method.java:372) E/AndroidRuntime(4404):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) E/AndroidRuntime(4404):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) E/AndroidRuntime(4404):原因:java.lang.ClassNotFoundException:在路径上找不到类“com.company.mobile.MainApplication”:DexPathList [[zip 文件“/data/app/com.company.mobile- 2/base.apk"],nativeLibraryDirectories=[/data/app/com.company.mobile-2/lib/x86, /vendor/lib, /system/lib]] E/AndroidRuntime(4404):在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) E/AndroidRuntime(4404): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:511) E/AndroidRuntime(4404): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:469) E/AndroidRuntime(4404):在 android.app.Instrumentation.newApplication(Instrumentation.java:979) E/AndroidRuntime(4404):在 android.app.LoadedApk.makeApplication(LoadedApk.java:558) E/AndroidRuntime(4404): ... 10 更多 E/AndroidRuntime(4404):抑制:java.lang.ClassNotFoundException:com.company.mobile.MainApplication E/AndroidRuntime(4404):在 java.lang.Class.classForName(本机方法) E/AndroidRuntime(4404):在 java.lang.BootClassLoader.findClass(ClassLoader.java:781) E/AndroidRuntime(4404): 在 java.lang.BootClassLoader.loadClass(ClassLoader.java:841) E/AndroidRuntime(4404): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:504) E/AndroidRuntime(4404): ... 13 更多 E/AndroidRuntime(4404): 由: java.lang.NoClassDefFoundError: Class not found using the boot class loader;没有可用的堆栈 W/ActivityManager(611):强制完成活动 com.company.mobile/.MainActivity I/WindowManager(611):屏幕截图最多重试 4 次令牌{1fd4adee ActivityRecord{3c07bf69 u0 com.company.mobile/.MainActivity t20 f}} appWin=Window{553e925 u0 Starting com.company.mobile}drawState=1 E/ActivityManager(611):缩略图尺寸无效:768x768 W/art (611): Long monitor contention event with owner method=void com.android.server.am.ActivityManagerService.crashApplication(com.android.server.am.ProcessRecord, android.app.ApplicationErrorReport$CrashInfo) 来自 ActivityManagerService.java :12038 服务员=0 持续 325 毫秒 I/OpenGLRenderer(611):初始化的 EGL,版本 1.4 W/art (611): Long monitor contention event with owner method=int com.android.server.wm.WindowManagerService.relayoutWindow(com.android.server.wm.Session, android.view.IWindow, int, android.view. WindowManager$LayoutParams, int, int, int, int, android.graphics.Rect, android.graphics.Rect, android.graphics.Rect, android.graphics.Rect, android.graphics.Rect, android.content.res.Configuration, android.view.Surface) 来自 WindowManagerService.java:2977 waiters=0 for 574ms I/Choreographer(1497):跳过了 51 帧!应用程序可能在其主线程上做了太多工作。 W/EGL_emulation(611):eglSurfaceAttrib 未实现 W/OpenGLRenderer(611):无法在表面 0xda5123c0 上设置 EGL_SWAP_BEHAVIOR,错误 = EGL_SUCCESS I/Choreographer(611):跳过96帧!应用程序可能在其主线程上做了太多工作。 W/ActivityManager(611):ActivityRecord{3c07bf69 u0 com.company.mobile/.MainActivity t20 f} 的活动暂停超时 I/Choreographer(611):跳过31帧!应用程序可能在其主线程上做了太多工作。 W/EGL_emulation(1497):eglSurfaceAttrib 未实现 W/OpenGLRenderer(1497):无法在表面 0xdf214c40 上设置 EGL_SWAP_BEHAVIOR,错误=EGL_SUCCESS
我的安卓清单
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.mobile"><uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme">
<service android:name="io.invertase.firebase.messaging.RNFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
-----------主应用程序-------------
package com.company.mobile;
import android.app.Application;
import com.facebook.react.ReactApplication;
import com.reactnativecommunity.webview.RNCWebViewPackage;
import com.microsoft.appcenter.reactnative.crashes.AppCenterReactNativeCrashesPackage;
import com.microsoft.appcenter.reactnative.analytics.AppCenterReactNativeAnalyticsPackage;
import com.microsoft.appcenter.reactnative.appcenter.AppCenterReactNativePackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
import io.invertase.firebase.RNFirebasePackage;
import io.invertase.firebase.messaging.RNFirebaseMessagingPackage;
import io.invertase.firebase.fabric.crashlytics.RNFirebaseCrashlyticsPackage;
import java.util.Arrays;
import java.util.List;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new AppCenterReactNativeCrashesPackage(MainApplication.this, getResources().getString(R.string.appCenterCrashes_whenToSendCrashes)),
new AppCenterReactNativeAnalyticsPackage(MainApplication.this, getResources().getString(R.string.appCenterAnalytics_whenToEnableAnalytics)),
new AppCenterReactNativePackage(MainApplication.this),
new RNGestureHandlerPackage(),
new RNFirebasePackage(),
new RNFirebaseMessagingPackage(),
new RNFirebaseCrashlyticsPackage(),
new RNCWebViewPackage()
);
}
@Override
protected String getJSMainModuleName() {
return "index";
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
}
【问题讨论】:
-
添加了@ManojPerumarath
-
我没找到你??但我的问题是,当我第一次使用
react-native run-android运行应用程序时,它在应用程序第一次在移动设备中崩溃后工作,它显示Unfortunatly mobile has stopped -
检查 com.package 文件,连同 mainactivity , mainapplication 文件是否存在
-
是否有 MainApplication.java 和 MainActivity.java 在 com>mobile 文件夹中
-
添加了@ManojPerumarath
标签: android firebase react-native crashlytics crashlytics-android