我的库是aar文件。将根gradle类路径2.1.0更改为2.2.1后,我得到NoClassDefFoundError错误。
例如:我在我的aar库中创建了一个新类,之后我同步并且我的主应用程序看到我的类但是当我运行应用程序时,在运行时它给了我NoClassDefFoundError。
Ps:更新后,gradle下载了2.14.1。
@RepositoryRestResource
在我的MainActivity类中,我使用静态方法调用方法:
threadid=1: thread exiting with uncaught exception (group=0xa4ca8b20)
: java.lang.NoClassDefFoundError: com.gk.lib.ui.Utils
: at com.example.activities.MainActivity.onCreate(MainActivity.java:78)
: at android.app.Activity.performCreate(Activity.java:5231)
: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
: at android.app.ActivityThread.access$800(ActivityThread.java:135)
: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
: at android.os.Handler.dispatchMessage(Handler.java:102)
: at android.os.Looper.loop(Looper.java:136)
: at android.app.ActivityThread.main(ActivityThread.java:5001)
: at java.lang.reflect.Method.invokeNative(Native Method)
: at java.lang.reflect.Method.invoke(Method.java:515)
: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
: at dalvik.system.NativeStart.main(Native Method)
我的实用工具类:
Utils.gkTestMethod();
与我所称的课程无关。如果我创建新类,则会出现此错误。
感谢。
答案 0 :(得分:0)
关于主build.gradle
中的此片段:
dependencies { compile('com.gk.lib:common:1.0.0') { transitive = true } compile('com.gk.lib:ui:1.0.0') { transitive = true exclude module: 'common' } compile('com.gk.lib:components:1.0.0') { transitive = true exclude module: 'common' exclude module: 'ui' } // Other dependencies }
似乎components
取决于common
和ui
,而ui
取决于common
。是否有充分的理由明确排除并重新包含传递依赖?我认为这应该有效:
dependencies {
compile 'com.gk.lib:components:1.0.0'
// Other dependencies
}
IIRC common
不具传递性。
答案 1 :(得分:0)
我无法相信multidex支持可以解决我的问题。为什么我以前没想过:/谢谢。