附件是一个内置三个文件夹的zip。 ShimmerExample,ShimmerDriver和ShimmerAndroidInstrumentDriver。 ShimmerExample是主程序,并依赖于其他两个项目作为库。
我启动Android Studio 1.1并导入“ShimmerExample”作为eclipse项目。 import-summary.txt在下面。
项目构建正常,并加载到Android设备。在启动应用程序时,我得到java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/vecmath/Quat4d
该类位于vecmath-1.3.1.jar。
请帮助,我不能上课!我尝试了其他“解决方案”,比如命令行中的gunning gradew,但没有任何帮助。我附上了我的项目的拉链。
我引用了其他帖子,但仍无效。
您的项目使用提供清单的库和Eclipse 项目没有明确打开清单合并。在Android Gradle中 项目,清单总是合并(意味着你的内容 库的清单将合并到应用清单中。如果你有 将库清单中的内容手动复制到应用清单中 您可能需要删除这些才能使应用程序正确构建。
以下文件未被复制到新的Gradle项目中;您 应评估您的项目是否仍然需要这些以及是否 所以手动移动它们:
来自ShimmerAndroidInstrumentDriver: * proguard-project.txt 来自Shimmer示例: * License.txt * README.txt * lib \ * lib \ AndroidBluetoothLibrary.jar * lib \ commons-math-2.2.jar * lib \ guava-12.0.jar * lib \ vecmath-1.3.1.jar * proguard-project.txt
导入程序将以下.jar文件识别为第三方 库而是用Gradle依赖项替换它们。这有 知道更明确的版本信息的优点,以及 库可以自动更新。但是,有可能 项目中的.jar文件版本比版本旧 我们选择的依赖项,这可能导致项目无法编译。 您可以在导入向导中禁用jar替换,然后重试:
guava-12.0.jar => com.google.guava:番石榴:12.0 android-support-v4.jar => com.android.support:support-v4:19.1.0
当我们用Gradle依赖项替换以下.jar文件时,我们 从文件名中推断出依赖版本号。这个 特定版本实际上可能无法从存储库中获得。 如果出现构建错误,指出缺少依赖项,请编辑 版本号例如“+”以获取最新版本 代替。 (如果库API,这可能需要您更新代码 已经改变了。)
guava-12.0.jar => com.google.guava中的12.0版:guava:12.0
Android Gradle项目使用与ADT不同的目录结构 Eclipse项目。以下是项目重组的方式:
在ShimmerDriver中: * libs \ commons-math-2.2.jar => shimmerDriver \ \库的commons-数学2.2.jar * libs \ vecmath-1.3.1.jar => shimmerDriver \库\ vecmath-1.3.1.jar * src \ => shimmerDriver的\ src \主\ java的\ 在ShimmerAndroidInstrumentDriver中: * AndroidManifest.xml => shimmerAndroidInstrumentDriver的\ src \主\ AndroidManifest.xml中 * assets \ => shimmerAndroidInstrumentDriver的\ src \主\资产\ * libs \ AndroidBluetoothLibrary.jar => shimmerAndroidInstrumentDriver \库\ AndroidBluetoothLibrary.jar * libs \ androidplot-core-0.5.0-release.jar => shimmerAndroidInstrumentDriver \库\ androidplot核-0.5.0-release.jar * libs \ commons-math-2.2.jar => shimmerAndroidInstrumentDriver \ \库的commons-数学2.2.jar * lint.xml => shimmerAndroidInstrumentDriver \ lint.xml * res \ => shimmerAndroidInstrumentDriver的\ src \主\水库\ * src \ => shimmerAndroidInstrumentDriver的\ src \主\ java的\ 在Shimmer例如: * AndroidManifest.xml => shimmerExample的\ src \主\ AndroidManifest.xml中 * res \ => shimmerExample的\ src \主\水库\ * src \ => shimmerExample \ SRC \主\的java \
您现在可以构建项目。 Gradle项目需要网络 连接下载依赖项。
如果由于某种原因您的项目没有构建,并且您确定了 这是由于Eclipse到Gradle导入程序的错误或限制, 请在http://b.android.com的类别中提交错误 组件的工具。
(此导入摘要仅供参考,可以删除 导入后,如果您对结果感到满意。)
答案 0 :(得分:0)
您可以通过将vecmath库从文件切换到库依赖项来解决此问题。
要执行此操作,请右键单击shimmerDriver并打开模块设置。 在这里,您可以添加库依赖项'java3d:vecmath:1.3.1'并删除文件依赖项。最后重建你的项目。