0
我将白标记为我的应用程序。为此,我已经:Android库在扩展应用程序类上的项目投射错误
- 将我的Android应用程序项目转换为Android库项目。我们将其称为
com.mylibraryproject.app
。 - 创建一个新项目。我们将其称为
com.example.testproject
。 - 将我的Android库项目添加为我的新Android应用程序项目库。
- 将我Android库项目中的清单复制到我的新Android应用程序项目的清单中,并适当引用了活动。
例子:
<activity
android:name="com.mylibraryproject.app.activity.MyActivity"
android:screenOrientation="portrait" >
</activity>
不过,我有一个崩溃我的新的Android应用程序项目运行时。
库项目包含一个类,我们将其称为MyApp
,它扩展了Application
。在这个项目中,都有对(MyApp)getApplicationContext()
的引用。
当上面的命中时,下面的异常被抛出。我如何避免这种情况?
更新:
以下是完整的onResume()
方法和日志猫:
@Override
protected void onResume() {
super.onResume();
MyApp app = (MyApp)getApplication();
if (app.getUserId() == -1 && !app.getUserConnected() && app.loadLastUser()) {
updateDisplay();
} else if (!mBack && app.getUserConnected()) {
updateDisplay();
}
}
这里是例外
02-21 13:13:11.169: E/AndroidRuntime(469): FATAL EXCEPTION: main
02-21 13:13:11.169: E/AndroidRuntime(469): java.lang.RuntimeException: Unable to resume activity {com.example.testproject/com.mylibraryproject.app.activity.MyActivity}: java.lang.ClassCastException: android.app.Application
02-21 13:13:11.169: E/AndroidRuntime(469): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2120)
02-21 13:13:11.169: E/AndroidRuntime(469): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2135)
02-21 13:13:11.169: E/AndroidRuntime(469): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1668)
02-21 13:13:11.169: E/AndroidRuntime(469): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-21 13:13:11.169: E/AndroidRuntime(469): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
02-21 13:13:11.169: E/AndroidRuntime(469): at android.os.Handler.dispatchMessage(Handler.java:99)
02-21 13:13:11.169: E/AndroidRuntime(469): at android.os.Looper.loop(Looper.java:130)
02-21 13:13:11.169: E/AndroidRuntime(469): at android.app.ActivityThread.main(ActivityThread.java:3683)
02-21 13:13:11.169: E/AndroidRuntime(469): at java.lang.reflect.Method.invokeNative(Native Method)
02-21 13:13:11.169: E/AndroidRuntime(469): at java.lang.reflect.Method.invoke(Method.java:507)
02-21 13:13:11.169: E/AndroidRuntime(469): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-21 13:13:11.169: E/AndroidRuntime(469): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-21 13:13:11.169: E/AndroidRuntime(469): at dalvik.system.NativeStart.main(Native Method)
02-21 13:13:11.169: E/AndroidRuntime(469): Caused by: java.lang.ClassCastException: android.app.Application
02-21 13:13:11.169: E/AndroidRuntime(469): at com.mylibraryproject.app.activity.MyActivity.onResume(MyActivity.java:277)
02-21 13:13:11.169: E/AndroidRuntime(469): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
02-21 13:13:11.169: E/AndroidRuntime(469): at android.app.Activity.performResume(Activity.java:3832)
02-21 13:13:11.169: E/AndroidRuntime(469): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2110)
02-21 13:13:11.169: E/AndroidRuntime(469): ... 12 more
277行是这一行:
MyApp app = (MyApp)getApplication();
我已经更新了从问题的行'(MyApp的)getApplicationContext()'来'(MyApp)getApplication()',我仍然收到相同的异常。 – Andrew
那么是时候发布你的堆栈跟踪了。你发布的是一个症状,整个堆栈将显示原因(可能甚至说'造成')。同时提供您的'onResume'方法,因为当前的例外意味着您的问题所在的位置 –
我已更新原始帖子。 – Andrew