I';我在平板电脑/手机上使用android 4.4和8.1(api级别19和27)运行我的应用程序时出错
当我在android 4.4设备上运行ClassNotFound异常时,我想知道它是如何发生的,因为我已经在清单文件下注册了我的所有活动,但这个错误仍然再次发生,让我感到困惑。 请告诉我我的代码有什么问题: 以下是错误: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[[
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.