我在尝试在Android Studio中构建项目时遇到此错误(我正在尝试从Eclipse迁移):
输出:
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
Run Code Online (Sandbox Code Playgroud)
在谷歌搜索和检查stackoverflow之后,最可能的原因是重复的库引用.
我的项目中有很多库,比如Facebook SDK,SlidingMenu等,需要android-support-v4.jar,所以我将它复制到我的主项目的/ libs文件夹中,然后将其从所有其他项目的libs文件夹中删除.然后我去了"Open Module Settings"并将support-v4添加为需要它的库的依赖库(例如Facebook SDK).
然后清理项目 - >运行但我仍然得到这个多个dex文件错误
跑步gradle -q dependencies节目:
+--- project :facebook-android-sdk-3.5.1:facebook
| \--- com.android.support:support-v4:+ -> 19.1.0
+--- project :SlidingMenu:library
| \--- com.android.support:support-v4:+ -> 19.1.0
Run Code Online (Sandbox Code Playgroud)
这样可以吗?如果我在模块设置中删除了这个库依赖项,那么在尝试编译项目时我会遇到更多错误
我是否需要设置模块,提供程序和接口(组件)?为了能够注入一个单身,似乎相当多的开销.
有人可以使用Dagger 2提供简单的单例示例吗?(还显示了如何设置单例的属性,如上下文,因此每次使用单例时都不需要传递它)