安卓部署应用程序无法实例化应用程序。

3

我有一个奇怪的错误,不知道该如何解决。 我测试了我直接部署到手机上的应用程序,它可以正常工作。但是现在从Play商店下载并测试时,应用程序在启动时崩溃,并显示以下错误:

java.lang.RuntimeException: 无法实例化应用程序com.bookit.android.BookItApp: java.lang.ClassNotFoundException: com.bookit.android.BookItApp

我有这个类:

package com.bookit.android;

public class BookItApp extends Application {...}

我认为定义App类的清单文件是正确的:

< application android:name="BookItApp"

或者我应该这样定义:

android:name = "com.bookit.android.BookItApp"

更新: 这是我的proguard-project.txt文件.

我不确定它是否正确.

-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}

-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}

-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;

这可能是Proguard问题。在project.properties文件中启用了Proguard吗?如果是的话,您的proguard conf文件中是否有-keep public class * extends android.app.Application? - Devrim
2个回答

2

就像您所说的那样,您应该像这样定义它

<application 
           android:name="com.bookit.android.BookItApp"
           ...
           ...
           >

我已经上传了一个带有修改的新apk到Play商店。现在我只能等待谷歌刷新我的应用页面,以更新版本来检查是否修复了问题。 - Tekno
应用程序已更新,现在它正常工作。因此,我认为那是真正的问题,因为我没有做任何其他更改。 - Tekno
太神奇了!!!现在应用程序又突然停止工作了。现在它出现了一个全新的错误:“无法实例化应用程序com.bookit.android.BookItApp:java.lang.ClassNotFoundException:在路径上找不到类“com.bookit.android.BookItApp”:/system/framework/com.google.android.maps.jar:/data/app/com.bookit.android-1.apk”。 - Tekno

0
错误提示为“java.lang.ClassNotFoundException: com.bookit.android.BookItApp”,因此定义是正确的。
您可以解压APK文件并找到“com.bookit.android.BookItApp”,如果缺失了,可能是因为打包问题。
PS:是否一直出现这个问题?

是的,只有当我从Play商店部署应用程序时才会出现这个问题。如果我直接从电脑到手机上安装,则没有问题。解压缩的包中有一个“classes.dex”,我认为其中包含了我的BookItApp类,但我不知道如何检查它...其他文件是资源、库等。 - Tekno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接