我试图使用Geotools Java库在我的一个项目,我就用摇篮和14.3版本内置:无法实例协调资源系统java.lang.NoClassDefFoundError:org.geotools.factory.Hints
compile 'org.geotools:gt-shapefile:14.3'
compile 'org.geotools:gt-epsg-hsql:14.3'
基本上,任何时候我尝试实例化一个CoordinateResourceSystem,如:
java.lang.NoClassDefFoundError: org.geotools.factory.Hints
at org.geotools.referencing.CRS.<clinit>(CRS.java:181)
:
CoordinateReferenceSystem crs;
try {
crs = CRS.decode("epsg:4326"); //also tried DefaultGeographicCRS.WGS84_3D
} catch (FactoryException e) {
e.printStackTrace();
}
我在运行时出现此错误
我到目前为止收到的所有建议都与启用Multidex有关,我尝试过每一个Gradle组合,但无济于事。还尝试清洁和建设几十次。无论我做什么,我都会在运行时收到这个讨厌的错误。任何想法,为什么这可能是?我可以在罐子里看到课堂。
我注意到,这个依赖项导入了几个罐子,所有罐子都有相似的包名。这些软件包名称是否会造成一些混淆?
真的很茫然,我不能继续我的项目,直到我想出了如何正确实现这些代码。
编辑
这里是我的logcat的。表明ART处理某些geotools类(包括culrpit提示类)似乎存在某种问题。
04-20 22:41:55.308 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.referencing.factory.ReferencingFactory>
04-20 22:41:55.311 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.factory.Hints>
04-20 22:41:55.311 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.factory.Hints$Key>
04-20 22:41:55.319 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.factory.Hints>
04-20 22:41:55.324 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.referencing.DefaultAuthorityFactory>
04-20 22:41:55.324 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.referencing.DefaultAuthorityFactory>
04-20 22:41:55.325 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.factory.Hints>
04-20 22:41:55.326 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.factory.Hints$Key>
04-20 22:41:55.326 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.factory.Hints$Key>
04-20 22:41:55.329 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.factory.Hints>
04-20 22:41:55.329 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.referencing.factory.AbstractAuthorityFactory>
04-20 22:41:55.330 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.referencing.factory.AbstractAuthorityFactory>
04-20 22:41:55.330 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.factory.Hints>
04-20 22:41:55.339 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.geometry.DirectPosition2D>
04-20 22:41:55.341 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.factory.Hints>
04-20 22:41:55.342 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.factory.Hints$Key>
04-20 22:41:55.355 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.357 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.358 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.359 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.360 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.361 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.362 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.363 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.363 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.364 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.365 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.366 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.367 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.368 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.371 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.372 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.374 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.375 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.376 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.376 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.377 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.378 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.378 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.379 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.379 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.383 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.384 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.384 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.389 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderableOp>
04-20 22:41:55.402 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.406 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderedOp>
04-20 22:41:55.406 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.PlanarImage>
04-20 22:41:55.408 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderableOp>
04-20 22:41:55.409 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderableOp>
04-20 22:41:55.410 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.RenderableOp>
04-20 22:41:55.414 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<javax.media.jai.JAI$RenderingKey>
04-20 22:41:55.414 5089-5089/com.myproject I/art: Rejecting re-init on previously-failed class java.lang.Class<org.geotools.factory.Hints>
04-20 22:41:55.414 5089-5089/com.myproject D/AndroidRuntime: Shutting down VM
04-20 22:41:55.415 5089-5089/com.myproject E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myproject, PID: 5089
java.lang.NoClassDefFoundError: org.geotools.factory.Hints
at org.geotools.referencing.CRS.<clinit>(CRS.java:181)
at com.myproject.MotionTrackingActivity.onCreate(MotionTrackingActivity.java:122)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2160)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2246)
at android.app.ActivityThread.access$800(ActivityThread.java:136)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1197)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5030)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
包含gt-epsg-hsql依赖项。仍然得到相同的错误:(任何其他想法可能会导致这个?可能只是尝试另一个库,所以也将开放的建议,以确保与Android的工作。谢谢你的答案... – ethan123
编辑上面包括logan – ethan123
Ian,你有没有得到过这个解决方案?我有同样的问题。 –