我创建了一个包含两个模块的项目 - 一个Android应用程序和一个java库。将studio升级到v3.0之后,只有当我从java-lib模块运行main()
方法时,才会得到NoClassDefFoundError。
我没有对build.gradle
文件进行任何更改,一切都是自动的。 implementation
/ api
/ compileOnly
/ runtimeOnly
方法不会更改。
我看到有关切换到新插件的信息,它说"声明风味尺寸"。我对此翻译有疑问,很快就会生气。
我试过了:
classpath 'com.android.tools.build:gradle:3.0.0'
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-rc-4-all.zip
帮我迁移到GRADLE 4 +。
答案 0 :(得分:0)
你知道,我可能已经找到了自己问题的答案。我相信很多人都有一个有两个模块的项目。 Android模块适用于新的GRADLE 4+,第二个模块作为java项目(不是库)不适用于新的GRADLE 4 +。
搜索答案的结果:LibGDX - GitHub
答案 1 :(得分:0)
如Android Developer Documentation中所述:
在某些情况下,您可能希望组合多种产品口味的配置。例如,您可能希望为"完整"创建不同的配置。和"演示"基于API级别的产品风味。为此,Gradle的Android插件允许您创建称为风味维度的产品风格组。构建应用程序时,Gradle会合并您定义的每个flavor大小的产品flavor配置以及构建类型配置,以创建最终的构建变体。 Gradle不会合并属于相同风味维度的产品风味。
您必须为Android Studio 3.0&amp ;;指定至少一个flavorDimension
Gradle 4 +
最重要的是,即使您没有不同的口味,也必须指定至少一个flavorDimension
&将其应用于您的所有productFlavors
。这将解决您的错误。在build.gradle
文件中:
flavorDimensions "dummy"
productFlavors {
demo {
// Assigns this product flavor to the "dummy" flavor dimension.
dimension "dummy"
...
}
full {
dimension "dummy"
...
}