Android 应用程序启动后立即关闭

问题描述 投票:0回答:4

我正在尝试完成我的应用程序以在 Google Play 商店上发布,因此上传到 alpha 测试阶段。当尝试启动应用程序时,它立即关闭,这是我收到的错误:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.FinalFrontier.MoonLanding/com.FinalFrontier.MoonLanding.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.FinalFrontier.MoonLanding.MainActivity" on path: DexPathList[[zip file "/data/app/com.FinalFrontier.MoonLanding-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.FinalFrontier.MoonLanding-1, /vendor/lib, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2192)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316)
at android.app.ActivityThread.access$600(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1298)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:213)
at android.app.ActivityThread.main(ActivityThread.java:5225)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.FinalFrontier.MoonLanding.MainActivity" on path: DexPathList[[zip file "/data/app/com.FinalFrontier.MoonLanding-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.FinalFrontier.MoonLanding-1, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2183)
... 11 more

这是我的第一个应用程序,我对此还很陌生,因此我们将不胜感激。我已阅读文档并在线搜索错误,但似乎无法使任何解决方案发挥作用。这是我的 Android 清单的副本。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="2" android:versionName="1.1" package="com.FinalFrontier.MoonLanding" android:installLocation="preferExternal">
<application android:icon="@drawable/app_icon" android:label="@String/app_name" android:debuggable="false" android:isGame="true" android:banner="@drawable/app_banner">
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:label="@String/app_name" android:name="com.FinalFrontier.MoonLanding.CustomActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
<activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:hardwareAccelerated="true" android:name="com.unity3d.ads.android.view.UnityAdsFullscreenActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" xmlns:tools="http://schemas.android.com/tools" tools:ignore="UnusedAttribute" />
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="23" />
<uses-feature android:glEsVersion="0x00020000" />
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
</manifest>

有人有什么想法吗?预先感谢。

java c# android android-manifest
4个回答
2
投票

本质上发生的事情是您的应用程序无法在编译的 APK 中找到它正在寻找的类并且正在崩溃。

发生这种情况的原因有多种。

先试试这个

我发现的最常见的情况是 IDE 在某处搞乱了其构建缓存。在这种情况下:重新启动 Android Studio,清除缓存,然后重建项目。

尝试第二次

也有可能您有足够的方法来突破 Android 方法限制(请参阅this),在这种情况下,您必须在应用程序中启用 multidex 或使用 Proguard 来最小化您的应用程序(这是更复杂,但从这里开始)。


0
投票

我相信您正在调用

finish();
方法。删除它,然后就可以正常工作了。


0
投票

系统搜索一个类,但在搜索位置找不到它:ClassNotFoundException 我的朋友,你把类文件放在正确的目录了吗?

我在完全相同的问题上花了半个小时,最终只是我保存文件的文件夹错误。


0
投票

也许你有双重 setContentView 你在 mainactivity.java 中的 onCreate 或者你用我不知道的东西替换了 mainactivity.java 中的 setContentView 。 有可能 发现您的 Activity_main.xml 缺少类错误

© www.soinside.com 2019 - 2024. All rights reserved.