从Eclipse导入Android Studio时的运行时NoClassDefFoundError异常

时间:2014-04-10 10:27:54

标签: android android-studio android-gradle

我正在尝试构建一个FBReader项目http://fbreader.org/FBReaderJ,它具有本机代码依赖项。使用最新的ADT和Android Studio v.5.4我可以使用NDK导入eclipse项目。该项目构建正常,尽管我在运行时遇到异常

    java.lang.NoClassDefFoundError: org/geometerplus/fbreader/formats/PluginCollection
        at org.geometerplus.fbreader.book.BookCollection.getBookByFile(BookCollection.java:63)
        at org.geometerplus.android.fbreader.libraryService.LibraryService$LibraryImplementation.getBookByFile(LibraryService.java:174)
        at org.geometerplus.android.fbreader.libraryService.LibraryInterface$Stub.onTransact(LibraryInterface.java:103)
        at android.os.Binder.execTransact(Binder.java:367)
        at dalvik.system.NativeStart.run(Native Method)

当我尝试使用ant从eclipse构建和运行项目时,一切正常。除了import-build-run之外我什么都没做。清洁,重建,同步工作室不会有帮助。异常指向的类不在任何库模块中,它在主模块中,而是不同的包。

有什么想法?任何帮助非常感谢!

1 个答案:

答案 0 :(得分:0)

当然它与NDK构建有关! :)我忽略了Android Studio在导入过程中没有包含.so库。希望很快就会修好。来自JNI and Gradle in Android Studio的答案就行了。

    sourceSets.main {
    jni.srcDirs = []
    jniLibs.srcDir 'libs'
}

我将它们包含在源树(lib文件夹)中,并将本机代码放入jni文件夹中。另外值得一提的是第一行表示srcDirs = []我已经有Android.mk文件描述了ndk构建的原生资源,所以这一行阻止Gradle生成它自己。