I';我在平板电脑/手机上使用android 4.4和8.1(api级别19和27)运行我的应用程序时出错

I';我在平板电脑/手机上使用android 4.4和8.1(api级别19和27)运行我的应用程序时出错,android,Android,当我在android 4.4设备上运行ClassNotFound异常时,我想知道它是如何发生的,因为我已经在清单文件下注册了我的所有活动,但这个错误仍然再次发生,让我感到困惑。 请告诉我我的代码有什么问题: 以下是错误: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.Forewarn.ForewarnApp.activities.Splash Activity" on path: DexPathList[[

当我在android 4.4设备上运行ClassNotFound异常时,我想知道它是如何发生的,因为我已经在清单文件下注册了我的所有活动,但这个错误仍然再次发生,让我感到困惑。 请告诉我我的代码有什么问题:

以下是错误:

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.Forewarn.ForewarnApp.activities.Splash Activity" on path: DexPathList[[zip file "/data/app/com.Forewarn.ForewarnApp-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.Forewarn.ForewarnApp-2, /system/lib]]
以下是清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.Forewarn.ForewarnApp">

    <!-- To auto-complete the email text field in the login form with the user's emails -->
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.READ_PROFILE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.READ_CALL_LOG" />
    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
    <uses-permission android:name="android.permission.USE_FINGERPRINT" />

    <uses-permission
        android:name="android.permission.MODIFY_PHONE_STATE"
        tools:ignore="ProtectedPermissions" />

    <uses-feature
        android:name="android.hardware.camera"
        android:required="false" />

    <configuration>
        <release>
            true
        </release>
    </configuration>

    <permission
        android:name="com.Forewarn.ForewarnApp.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.Forewarn.ForewarnApp.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <application
        android:name=".activities.SoteriaApplication"
        android:allowBackup="false"
        android:icon="@drawable/ic_launcherr"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".activities.SplashActivity"
            android:label="@string/app_name"
            android:configChanges="orientation|screenSize"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity"
            android:configChanges="orientation|keyboardHidden|screenSize" />
        <activity
            android:name=".activities.SignInActivity"
            android:configChanges="orientation|keyboardHidden|screenSize" />
        <activity android:name=".activities.SignUpActivity" />
        <activity android:name=".activities.ForgotPasswordActivity" />
        <activity android:name=".activities.SerachResultsActivity" />
        <activity android:name=".activities.DetailsPageActivity" />
        <activity android:name=".activities.PropertyDetailsActivity" />
        <activity android:name=".activities.BankurptsDetailsActivity" />
        <activity android:name=".activities.SampleActivity" />
        <activity android:name=".activities.ActivityCallLog" />
        <activity android:name=".activities.SettingsActivity" />
        <activity android:name=".activities.VehicleDetailsActivity" />
        <activity android:name=".activities.ResultsActivity" />
        <activity android:name=".activities.OthersActivity" />
        <activity android:name=".activities.NoRecordsActivity" />
        <activity android:name=".activities.MoreRecordsActivity" />
        <activity
            android:name=".activities.CriminalDetailsActivity"
            android:configChanges="orientation|keyboardHidden|screenSize" />
        <activity android:name=".activities.CriminalSampleActivity" />
        <activity
            android:name=".activities.OtpActivity"
            android:configChanges="orientation|keyboardHidden|screenSize" />
        <activity android:name=".activities.AddressesDetailsActivity" />
        <activity
            android:name=".activities.PhonesHistoryDetailsActivity"
            android:configChanges="orientation|keyboardHidden|screenSize" />
        <activity android:name=".activities.ContactsReaderActivity" />
        <activity
            android:name=".activities.FingerprintTermsAndConditionsActivity"
            android:configChanges="orientation|keyboardHidden|screenSize" />
        <activity android:name=".activities.ChangePasswordActivity" />
        <activity
            android:name=".activities.TermsandConditionsActivity"
            android:configChanges="orientation|keyboardHidden|screenSize" />
        <activity android:name=".activities.PdfPasswordActivity"></activity>
    </application>

</manifest>
顺便说一句,我尝试了即时运行禁用方法:现在我得到验证错误:如下所示:

FATAL EXCEPTION: main
                                                                        Process: com.Forewarn.ForewarnApp, PID: 1060
                                                                        java.lang.VerifyError: com/Forewarn/ForewarnApp/activities/SignInActivity
                                                                            at java.lang.Class.newInstanceImpl(Native Method)
                                                                            at java.lang.Class.newInstance(Class.java:1208)
                                                                            at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
                                                                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
                                                                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
                                                                            at android.app.ActivityThread.access$800(ActivityThread.java:135)
                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                            at android.os.Looper.loop(Looper.java:136)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5017)
                                                                            at java.lang.reflect.Method.invokeNative(Native Method)
                                                                            at java.lang.reflect.Method.invoke(Method.java:515)
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
                                                                            at dalvik.system.NativeStart.main(Native Method)

听起来像是多指标问题。在您的应用程序类
activities.soteriapplication
中添加此

  @Override
  protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
  }
app.gradle

android {
 defaultConfig {
      multiDexEnabled true
  }
 dexOptions {
        javaMaxHeapSize "4g"
    }
}
在Gradle中也启用多索引

NB:仅当这是您的自定义应用程序类时,才使用
android:name=“.activities.SoteriaApplication”


还可以尝试清理和重建项目,并在不立即运行的情况下运行应用程序。检查问题是否已解决(阅读更新的问题和错误日志后)

我看到你们有验证器日志,所以让我描述一下,希望你们能得到一些线索。这是一个详细的讨论

此错误表示Java虚拟机(JVM)中包含的验证器检测到一个类文件,该类文件尽管格式良好,但包含某种类型的内部不一致性或面临安全问题

VerifyError类扩展了LinkageError类,该类用于 指出这些错误情况,其中类依赖于某些 其他类和该类在 汇编此外,LinkageError类扩展了该错误 类,用于指示 应用程序不应捕获。方法不能在中声明此类错误 它的throw子句,因为这些错误是 永远不会发生

最后,VerifyError自Java的1.0版本以来就存在

对我来说,这可能是你的情况。考虑问题并检查你的依赖关系。清理你的项目。甚至重新启动系统。我确信它没有正确地清理您的项目。

更新1 我也有同样的问题。我是如何通过在build.gradle文件依赖项中添加以下行来解决这个问题的

编译'com.android.support:multidex:1.0.2'

然后在我的应用程序类中,我用“extends MultiDexApplication”扩展了它,我确保在onCreate方法中添加了这个

public class SoteriaApplication extends MultiDexApplication  {
//Please extend your application class with MultiDexApplication 
@Override
public void onCreate() {
    super.onCreate();
    AccountUtils.assignContext(this);
    MultiDex.install(this);
}}
请使用MultiDexApplication类扩展应用程序类

做一件事-:

Go to File on top menu->Setting->Build Execution->Instant run->If its enabled then try disabling that.

如果您已经完成了@A.s.ALI和@Tomin B Azhakathu提到的
MultiDex
工作,并且仍然存在
ClassNotFoundException
。然后,您应该查看
com.prewarn.prewarnapp.activities.SplashActivity
是否位于
主索引中(您可以在Android Studio中拖动apk并确认)。如果
com.Forewarn.ForewarnApp.activities.SplashActivity
主索引中,并且仍然引发异常,请告诉我,谢谢。

现在可以再次查看我的更新代码吗,我添加了我的应用程序类,并建议我,如果这是错误的,你有Proguard规则在某些情况下,由于安卓Studio的IntantRun功能将显示此错误抱歉idk关于Proguard规则。我是android新手。清理和重建项目并运行应用程序,而无需即时运行。检查问题是否解决请检查我的答案…显示您的清单您可以查看一下吗,我在询问问题时已经添加了我的清单是否使Chache无效并在Android Studio中重新启动并清理和构建Project@aravindhnani在回答中检查我的upadte2你能看到我更新的代码吗,我又发现一个错误,当我尝试使用disable instant run Option Verify error时,它会显示错误,但idk知道如何解决。它不知道你为什么要使用这个预警。预警应用程序??我的公司名称和应用程序名称哦,好的……即时运行是否成功?
Go to File on top menu->Setting->Build Execution->Instant run->If its enabled then try disabling that.