2016-02-04 51 views
0

我一般遵循的步驟將其添加到settings.gradle我的應用程序轉換爲庫項目通過更新build.gradleapply plugin: 'com.android.library',然後包括它在我的其他應用程序, build.gradleAndroid的 - 現有的應用程序添加到另一個應用程序作爲庫項目

我可以看到,當我對添加了庫的應用程序進行gradle同步時,庫項目會進行編譯。不過,我無法從應用內的庫中調用或訪問代碼。什麼是正確的方法來做到這一點?

庫項目是一個具有MainActivity的應用程序,其行爲與任何Android應用程序相似。還有什麼需要做的,使其成爲一個適當的圖書館項目?

異常而從啓動應用程序從庫的活動,包括圖書館:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{myapp.debug/mylib.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "mylib.MainActivity" on path: DexPathList[[zip file "/data/app/myapp.debug-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2236) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.ClassNotFoundException: Didn't find class "mylib.MainActivity" on path: DexPathList[[zip file "/data/app/myapp.debug-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at android.app.Instrumentation.newActivity(Instrumentation.java:1066) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2226) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)  at android.app.ActivityThread.access$800(ActivityThread.java:151)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:135)  at android.app.ActivityThread.main(ActivityThread.java:5254)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)  Suppressed: java.lang.ClassNotFoundException: com.janacare.aina.MainActivity at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 13 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

+0

給出您想要調用的代碼示例。這是你想開始的活動嗎?這是一個類中的靜態方法嗎? – Gavriel

+0

這是一項活動。通過意圖推出。試圖這樣做時,我得到一個'ClassNotFoundException'。 –

+0

顯示您的應用程序的manifest.xml以及用於從您的lib中啓動活動的代碼以及獲取的完整錯誤消息 – Gavriel

回答

0

也許你應該試着在Android Studio中這些

,點擊文件 - >新建 - >輸入模塊 - >瀏覽您的圖書館將會是應用程序位置
此方法會自動將您的應用程序添加到gradle並將您的應用程序導入到您的項目

相關問題