我在尝试构建我的应用程序项目时遇到了巨大的麻烦。我有主应用程序模块和库项目模块,如下所示:
这是格拉德尔。为每个模块构建:
主应用程序:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion '19.0.0'
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}
buildTypes {
release {
runProguard true
proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
}
}
productFlavors {
defaultFlavor {
proguardFile 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v13:19.0.+'
compile 'com.google.android.gms:play-services:4.0.+'
compile project(':libraries:datetimepicker')
}
这个是图书馆项目的:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}
release {
runProguard true
proguardFile 'proguard-rules.txt'
proguardFile getDefaultProguardFile('proguard-android-ptimize.txt')
}
}
dependencies {
compile 'com.android.support:support-v4:19.0.+'
}
最后,这是项目settings.gradle文件。
include ':App', ':libraries:datetimepicker'
我能够成功地将包从库导入到我的应用程序代码并使用它们,但是当我尝试编译时,我会得到以下结果:
Gradle: Execution failed for task ':App:compileDefaultFlavorDebug'.
> Compilation failed; see the compiler error output for details.
E:\blah\blah\MyClass.java
Gradle: error: cannot find symbol class DatePickerDialog
Gradle: error: package DatePickerDialog does not exist
Gradle: error: cannot find symbol class DatePickerDialog
Gradle: error: cannot find symbol class DatePickerDialog
Gradle: error: cannot find symbol variable DatePickerDialog
Gradle: error: method does not override or implement a method from a supertype
我已经试着解决这个问题三天了,几乎用尽了我在这里能找到的所有类似问题的解决方案。我对android的开发很有信心,但对gradle不太有信心,可能做了一些明显错误的事情。
一些额外信息:
有没有办法解决这个问题?
只是明确地告诉gradle,你的库项目不能通过添加/修改部分来缩小
android/buildTypes/debug
您的库项目的build.gradle文件,如下图所示(MinifyEnablefalse是关键):
android {
...
buildTypes {
debug {
debuggable true
minifyEnabled false
}
...
}
...
}
注:
在这里,我还明确指示gradle使我的“调试”构建可调试(debugable true)。
当Gradle构建库项目时,它正在构建发布类型,即使您正在为主应用构建调试类型(这是一个bug)。在库项目中,您已经为发布版本类型配置了Proguard,Proguard正在混淆符号名称,使它们对应用程序不可见。
由于您控制库代码,最好不要在库构建中运行Proguard,而只在主应用的发布版本中运行它。它会混淆所有代码,包括依赖项。
如果你真的想独立地混淆库代码,你需要设置Proguard规则来公开库的公共符号,DatePickerDialog
就是其中之一。
我试图用Visual Studio生成以下示例C++代码: 我根据以下内容构建了驱动程序:https://github.com/mongodb/mongo-cxx-driver/blob/master/appveyor.yml 系统信息:-Win10-Visual Studio Community 2015 Update 3-使用Boost 1.60.0 64位-使用CMake 3.7.0-使用G
我需要为ant创建构建文件来构建我的,我已经搜索了很多,但没有任何帮助。它仍然显示错误并且不编译。当我尝试运行jar文件时,jar文件无法被删除。这里是 这里是错误
当我键入npx create react app project时,突然出现了这个错误 错误是:包config/home/swaraj/中定义的“exports”主目标“index.js”无效。npm/_npx/8451/lib/node_modules/create react app/node_modules/is promise/package。json 谁能告诉我这个错误是什么以及如何解决
我有一个项目被配置为: CMake项目 静态库A src(取决于B) 静态Lib B src(取决于Qt)
我对分级建造系统和智能是新的。 那么我如何创建一个Android库项目(例如com.myapp.lib1)和应用程序项目(例如com.myapp.app),并使构建系统在应用程序项目上包含com.myapp.lib1呢? 我转到Project Structure->Modules->我的App项目,并向lib项目添加了一个依赖项。IntelliJ现在在应用程序项目中使用时可以从lib项目中识别类,
Weblogic是否有任何免费可用的应用程序(war文件),其中应用程序使用某种数据库? 如果这不是正确的地方,请将我重定向到正确的地方问这个问题。