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

时间:2017-01-09 12:39:07

标签: java android telegram

我正在处理电报源代码。一切都是正确的,现在应用程序将在设备上成功安装和运行。

但是在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)

1 个答案:

答案 0 :(得分:0)

答案链接: NoClassDefFoundError below SDK 21

我通过将此问题添加到我的应用程序类来解决了这个问题。

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

如果您没有/使用Application类,可以输入:

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

进入AndroidManifest.xml上的标记

如果您已经实现了Application类

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

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

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