运行时活动的内部类

时间:2015-04-29 11:03:17

标签: android android-studio noclassdeffounderror aar

我发现了很多类似的问题,但没有人帮助我。

我有下一个问题。我有完整的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中声明,但它没有帮助我,我得到了类似的错误。

如果此信息不够,我会添加所需的代码部分等。如果您知道如何解决我的问题,请帮助我!感谢。

0 个答案:

没有答案