我已修改了
我在文件夹“
在
我想知道为什么会崩溃,如果构建有问题,为什么它对我和其他11台测试设备有效。
以下是我收到的堆栈:
build.gradle
,根据构建变量(debug
/ release
)使用不同的Application
类。我在文件夹“
debug
”中添加了两个WrapperApplication
类,并在文件夹“release
”中添加了第二个类,这两个类都扩展了某些基本Application
类。在
AndroidManifest
中,我指向com.my.package.WrapperApplication
,它确实使用了正确的应用程序。
发布测试apk到Play时,我收到了一个预启动报告,说我的新版本在13台设备中的2台(Moto G和Moto X)上崩溃了。我想知道为什么会崩溃,如果构建有问题,为什么它对我和其他11台测试设备有效。
以下是我收到的堆栈:
FATAL EXCEPTION: main
Process: com.my.package, PID: 16348
java.lang.RuntimeException: Unable to instantiate application com.my.package.WrapperApplication: java.lang.IllegalStateException: Unable to get package info for com.my.package; is package not installed?
at android.app.LoadedApk.makeApplication(LoadedApk.java:516)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4398)
at android.app.ActivityThread.access$1500(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5102)
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:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: Unable to get package info for com.my.package; is package not installed?
at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:376)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:329)
at android.app.LoadedApk.makeApplication(LoadedApk.java:508)
... 11 more
谢谢。
编辑:
以前我们使用以下方法,但是使用特定于变体的文件夹对于我们的构建系统更加清晰,因此我们希望切换到它。
以前的方法:
AndroidManifest:
<application
android:name="${application}"
... />
build.gradle:
debug {
manifestPlaceholders = [application:".Application1"]
}
release {
manifestPlaceholders = [application: ".Application2"]
}