我已经看到有很多关于这个问题的问题,但遗憾的是没有人能解决这个问题。这是一个关于正在发生的事情的屏幕截图:
它依赖于android-support-v4 jar文件,你可以看到它被添加到我的构建路径中。它是来自maven库目录的libs文件夹的确切jar文件。我尝试了以下内容:
没有任何帮助。有没有其他技巧来解决这个问题?我见过的所有答案都建议我做一些我已经尝试过的事情。
非常感谢!
答案 0 :(得分:1)
实际根本原因:
此实例中的OP JMRboosties报告必须停用Proguard (通过删除未使用的代码并重命名类,字段来缩小,优化和混淆代码的工具,以及具有语义模糊名称的方法)
在
<plugin>
中发生错误的行(pom.xml
项目)上禁用proguard解决了问题
(参见“How to use ProGuard with android-maven-plugin ”)。
使用Proguard会产生某些副作用:例如,Proguard page确实提到:
默认的
proguard.cfg
文件试图涵盖一般情况,但您可能会遇到ClassNotFoundException
等异常,当ProGuard删除应用程序调用的整个类时会发生这种情况。
原始答案:
如此GitHub post中所述:
我要将自己的android工件部署到我的个人存储库,以避免再次出现此问题 如果您没有明确使用Maven,您可以将其作为常规Android项目导入到eclipse中,它将从
.jar
目录中选择libs/
。
(请注意,您的android-support-v4.jar
不在项目的libs
中)
您现在必须使用maven SDK部署程序安装Android 1.6和compat lib 。
点击
platforms/platform-4/
中的extras/compatibility-v4/
和deployer
,并在每个mvn install
中运行compat
。希望
File, New, Project, Android
lib尽快进入maven中心,这样我就可以避免这一步。同样,该项目被设置为在eclipse中用作普通的Android项目,与maven完全分开
existing sources
,使用library/
,选择{{1}}文件夹。
答案 1 :(得分:0)
假设您在幕后使用m2e-android,那么您遇到编译问题的原因是m2e-android插件从Eclipse项目类路径中删除了所有provided
范围依赖项。
我们这样做是因为,由于ADT 16.0.0中的更改,Eclipse类路径中的任何JAR文件都将打包到可分发的APK文件中。