强制关闭安卓设备中的android应用程序4

问题描述:

我正在处理电报源代码。所有的事情都是正确的,现在应用程序将在设备上安装并运行成功。强制关闭安卓设备中的android应用程序4

但是,在android版本4.0.1至android版本4.2.2的设备中,该应用将停止并显示如下所示的错误。 我将build.gradle中的defaultConfig.applicationId更改为ir.familygram.messenger,并猜测这是问题所在,但为什么它在具有sdk 22,23等的设备上运行良好。并不适用于Android SDK较低的设备?

错误,在Android设备监控:

01-09 15:45:40.190: E/AndroidRuntime(8158): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{ir.familygram.messenger/org.telegram.ui.LaunchActivity}: java.lang.ClassNotFoundException: org.telegram.ui.LaunchActivity 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1998) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.ActivityThread.access$600(ActivityThread.java:138) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.os.Looper.loop(Looper.java:137) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.ActivityThread.main(ActivityThread.java:4954) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at java.lang.reflect.Method.invoke(Method.java:511) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at dalvik.system.NativeStart.main(Native Method) 
01-09 15:45:40.190: E/AndroidRuntime(8158): Caused by: java.lang.ClassNotFoundException: org.telegram.ui.LaunchActivity 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.Instrumentation.newActivity(Instrumentation.java:1056) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1989) 
01-09 15:45:40.190: E/AndroidRuntime(8158):  ... 11 more 
01-09 15:58:00.770: E/Trace(9057): error opening trace file: No such file or directory (2) 

答案链接: NoClassDefFoundError below SDK 21

我加入这个我的应用程序类解决了这个问题。在AndroidManifest.xml中

android:name="android.support.multidex.MultiDexApplication" 

到您的代码如果您已经实现的应用程序类

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

如果你没有/使用的应用程序类,你可以把这个

显然,您需要添加Gradle依赖项:

compile 'com.android.support:multidex:1.0.0' 

有关65k方法问题的更多信息:https://developer.android.com/tools/building/multidex.html