如何在我们的Android应用程序中实现其他应用程序的代码?

时间:2013-02-19 06:38:56

标签: android jar

我有两个Android应用程序的代码说A和B.我想在B应用程序中实现A的代码。为此,我将A作为库(jar)并将其添加到B项目中。本身包含活动和其他类。现在,我想在按钮单击时调用A的根活动,并在B应用程序项目中运行A中的所有流程。我还想在B项目的App内存中访问A保存的数据。

在B项目中添加jar时,A的2个活动正常。但随后崩溃了。

我得到的错误就在这里

02-19 12:35:59.260: W/dalvikvm(478): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-19 12:35:59.280: E/AndroidRuntime(478): FATAL EXCEPTION: main
02-19 12:35:59.280: E/AndroidRuntime(478): java.lang.NullPointerException: No application instance given
02-19 12:35:59.280: E/AndroidRuntime(478):  at com.fsck.k9.mail.store.StorageManager.<init>(StorageManager.java:526)
02-19 12:35:59.280: E/AndroidRuntime(478):  at com.fsck.k9.mail.store.StorageManager.getInstance(StorageManager.java:497)
02-19 12:35:59.280: E/AndroidRuntime(478):  at com.fsck.k9.Account.<init>(Account.java:262)
02-19 12:35:59.280: E/AndroidRuntime(478):  at com.fsck.k9.Preferences.newAccount(Preferences.java:111)
02-19 12:35:59.280: E/AndroidRuntime(478):  at com.fsck.k9.activity.setup.AccountSetupBasics.onManualSetup(AccountSetupBasics.java:285)
02-19 12:35:59.280: E/AndroidRuntime(478):  at com.fsck.k9.activity.setup.AccountSetupBasics.onNext(AccountSetupBasics.java:256)
02-19 12:35:59.280: E/AndroidRuntime(478):  at com.fsck.k9.activity.setup.AccountSetupBasics.onClick(AccountSetupBasics.java:324)
02-19 12:35:59.280: E/AndroidRuntime(478):  at android.view.View.performClick(View.java:2485)
02-19 12:35:59.280: E/AndroidRuntime(478):  at android.view.View$PerformClick.run(View.java:9080)
02-19 12:35:59.280: E/AndroidRuntime(478):  at android.os.Handler.handleCallback(Handler.java:587)
02-19 12:35:59.280: E/AndroidRuntime(478):  at android.os.Handler.dispatchMessage(Handler.java:92)
02-19 12:35:59.280: E/AndroidRuntime(478):  at android.os.Looper.loop(Looper.java:123)
02-19 12:35:59.280: E/AndroidRuntime(478):  at android.app.ActivityThread.main(ActivityThread.java:3683)
02-19 12:35:59.280: E/AndroidRuntime(478):  at java.lang.reflect.Method.invokeNative(Native Method)
02-19 12:35:59.280: E/AndroidRuntime(478):  at java.lang.reflect.Method.invoke(Method.java:507)
02-19 12:35:59.280: E/AndroidRuntime(478):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-19 12:35:59.280: E/AndroidRuntime(478):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-19 12:35:59.280: E/AndroidRuntime(478):  at dalvik.system.NativeStart.main(Native Method)
02-19 12:35:59.290: W/ActivityManager(76):   Force finishing activity com.test.k9test/com.fsck.k9.activity.setup.AccountSetupBasics
02-19 12:35:59.822: W/ActivityManager(76): Activity pause timeout for HistoryRecord{408e0b70 com.test.k9test/com.fsck.k9.activity.setup.AccountSetupBasics}
02-19 12:36:09.939: W/ActivityManager(76): Activity idle timeout for HistoryRecord{407edcd8 com.test.k9test/.MainActivity}
02-19 12:36:15.170: W/ActivityManager(76): Activity destroy timeout for HistoryRecord{408e0b70 com.test.k9test/com.fsck.k9.activity.setup.AccountSetupBasics}

你能建议任何解决方案吗?提前致谢

1 个答案:

答案 0 :(得分:0)

关于“项目的召唤”

Intent intent = new Intent(getApplicationContext(), nom.nom.example.A.yourClass);
startActivity(intent);

A.yourClass中的A是主要活动。

关于“B项目的A数据访问”

尝试查看SharePreference ContentProvider