我发现了很多类似的问题,但没有人帮助我。
我有下一个问题。我有完整的Android项目,我必须将它的功能导出到.aar
库。首先,我创建了新项目并创建了新模块,其中放置了我的源项目。在这一步,一切顺利,我在mylib.aar
文件夹中获取/build/outputs/aar/
文件。然后我创建了一个新项目来测试我的mylib.aar
,所以我在Android Studio的libs
文件夹下创建了app
文件夹,在我的测试项目的build.gradle
文件中我添加了这些行:
repositories {
flatDir {dirs 'libs'}
}
dependencies {
compile(name: 'mylib', ext: 'aar')
}
在清单文件中,我从库中添加了MainActivity的声明:
<activity android:name="com.testlib.mylib.MainActivity"
android:label="MainActivity"/>
Android Studio发现这个文件很好,我甚至可以通过内置的反编译器观看源代码。但是,当我尝试从另一个未放入我的lib的活动开始此活动时,我收到此错误:
3838-3838/com.testapp.testsdkapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.testapp.testsdkapp, PID: 3838
java.lang.NoClassDefFoundError: com.testlib.mylib.MainActivity$RegisterInBackgroundTask
at com.testlib.mylib.MainActivity.registerInBackground(MainActivity.java:1551)
at com.testlib.mylib.MainActivity.onCreate(MainActivity.java:269)
at android.app.Activity.performCreate(Activity.java:5937)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
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:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
RegisterInBackgroundTask
是在库中的MainActivity中声明的内部public AsyncTask
类。我试图将mylib.aar
放在aar
文件夹中并以其他方式在build.gradle
中声明,但它没有帮助我,我得到了类似的错误。
如果此信息不够,我会添加所需的代码部分等。如果您知道如何解决我的问题,请帮助我!感谢。