首页 文章

Android - 将现有应用程序添加到另一个应用程序作为库项目

提问于
浏览
0

我通常按照步骤将我的应用程序转换为库项目,方法是将 build.gradle 更新为 apply plugin: 'com.android.library' ,然后通过将其添加到 settings.gradlebuild.gradle 将其包含在我的其他应用程序中 .

我可以看到,当我在我添加了库的应用程序上进行gradle同步时,库项目会编译 . 但是,我无法从应用程序内调用或访问库中的代码 . 这样做的正确方法是什么?

该库项目是一个具有 MainActivity 的应用程序,通常表现得像任何Android应用程序 . 还有什么需要做才能使它成为一个合适的图书馆项目吗?

从包含库的应用程序启动库中的Activity时出现异常:

java.lang.RuntimeException:无法实例化活动ComponentInfo {myapp.debug / mylib.MainActivity}:java.lang.ClassNotFoundException:未在路径上找到类“mylib.MainActivity”:DexPathList [[zip file“/ data / app / myapp.debug-2 / base.apk“],nativeLibraryDirectories = [/ vendor / lib,/ system / lib]],位于android.app.ActivityThread的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2236) . android.app.Handler.dispatchMessage上android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1303)的android.app.ActivityThread.access $ 800(ActivityThread.java:151)上的handleLaunchActivity(ActivityThread.java:2387) Handler.java:102)在android.app.Looper.loop(Looper.java:135)的android.app.ActivityThread.main(ActivityThread.java:5254)at java.lang.reflect.Method.invoke(Native Method)在java.lang.reflect.Method.invoke(Method.java:372)的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:903)at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:69 8)引起:java.lang.ClassNotFoundException:未在路径上找到类“mylib.MainActivity”:DexPathList [[zip file“/data/app/myapp.debug-2/base.apk”],nativeLibraryDirectories = [ / vendor / lib,/ system / lib]]在java.lang.ClassLoader.loadClass的java.lang.ClassLoader.loadClass(ClassLoader.java:511)的dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)中在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2226)的android.app.Instrumentation.newActivity(Instrumentation.java:1066)上的ClassLoader.java:469) )在Android.app.Handler.dispatchMessage(Handler.java:102)的android.app.ActivityThread.access $ 800(ActivityThread.java:151)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1303) android.os.Looper.loop(Looper.java:135)位于java.lang.reflect的java.lang.reflect.Method.invoke(Native Method)的android.app.ActivityThread.main(ActivityThread.java:5254) . Method.invo ke(Method.java:372)com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:903)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)抑制: java.lang.ClassNotFoundException:java.lang.Class.classForName(Native Method)中的com.janacare.aina.MainActivity,java.lang.BootClassLoader.findClass(ClassLoader.java:781),java.lang.BootClassLoader.loadClass(ClassLoader) .java:841)在java.lang.ClassLoader.loadClass(ClassLoader.java:504)... 13更多引起:java.lang.NoClassDefFoundError:使用引导类加载器找不到类;没有堆栈可用

2 回答

  • 0

    也许你应该试试这些

    在android studio中,单击file-> new-> import module->浏览到您的库将是app位置
    此方法会自动将您的应用添加到gradle并将您的应用导入您的项目

  • 0

    在另一个android项目中为启动库模块Activity实现此代码

    1)意图i =新意图(Intent.ACTION_MAIN);

    2)i.setComponent(new ComponentName(“myparent.company.com.myparent”,“myparent.company.com.myparent.MainActivity”));

    3)startActivity(ⅰ);

    但给我错误:

    java.lang.RuntimeException:无法启动活动ComponentInfo {mychild.agamitech.com.mychild / mychild.agamitech.com.mychild.MainActivity}:android.content.ActivityNotFoundException:无法找到显式活动类{myparent.company.com . myparent / myparent.company.com.myparent.MainActivity};你有没有在AndroidManifest.xml中声明这个活动?

    我想将My Another Project活动用于许多其他项目

相关问题