我希望有人能回答我认为是一个基本的gradle/proguard问题。
我有一个非常基本的Android项目。这个项目包含主应用程序模块,名为app
,以及Android支持库的库模块,名为AndroidSupport
。
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.androidsupportlibproject"
minSdkVersion 9
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
debug {
minifyEnabled false //Proguard DISABLED
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':AndroidSupport')
}
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 9
targetSdkVersion 22
}
buildTypes {
release {
minifyEnabled true //Proguard ENABLED
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:recyclerview-v7:22.2.0'
compile 'com.android.support:support-annotations:22.2.0'
}
-dontobfuscate
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.app.** { *; }
当app
应用程序启用了Proguard,而Androidsupport
禁用了Proguard,我可以使用consumerproguardfiles proguard-rules.pro
来缩小Androidsupport
。
但是当我使用上面粘贴的配置时,我会得到以下错误:
Error:Execution failed for task ':AndroidSupport:proguardRelease'.
java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?`
有人知道这个设置是否可能吗?只在依赖库模块上启用Proguard,而不在应用程序本身上启用?
提前感谢!
您不想保持库模块的一些接口-API可见吗?要从应用程序模块访问?在这种情况下,您应该在库ProGuard中添加-keep选项,例如:
-keep,allowshrinking class com.example.androidsupportlibproject.YourClass {
public <methods>;
protected <methods>;
public static <methods>;
public <init>(...);
}
我有1个应用程序和2个模块 框架结构 但我不能在MyApp中使用MyModule的文件。IDE显示我“无法访问”错误,我想扩展一个MyModule类的类。而且它不是从MyModule创建类的,有人对此有想法吗?怎么了?
我试图在库模块中使用静态编程语言,而不在应用模块中使用它。应用模块只使用Java,不使用库中的任何静态编程语言类。Gradle不会编译hoever: 我对Kotlin进行了修改: {library root}/build。格拉德尔 {library root}/{library module}/build。格拉德尔 当我将其添加到应用程序模块中时,项目编译不会出现问题,但我希望避免将其添加到应用程
是否有一种明智的方法让一个perl6模块检查另一个perl6模块的存在,并在安装时“使用”它? 像这样的。。。 其思想是传播操作符重载(中缀: (请不要拆掉排水管,因为我怀疑总有办法!)
我在多模块项目中工作。目前我面临以下问题: > 模块A 模块B 模块A依赖于B 模块A有以下方法@GetMapping(path=“/GetWorkspace”) } 模块B有以下方法,我需要使用模块A提到的endpoint 公共字符串consumeModuelAMethod(){ 当我从模块A通过RestTemboard调用“http://localhost:8080/getworkspaces
问题内容: 编码 给出输出 然后是代码 引发异常 总而言之,有一个类,但是模块没有attribute 。到底是怎么回事? 我正在使用Matplotlib 1.1.0和Python 2.7.3。 问题答案: 嘿。这是因为有 是 无类..直到有需要,当一个人从建。这是通过以下方法实现的: 因此它是即时生成的,但是它是的子类:
我试图转换文本到语音在python使用gtts我使用3.7.4版本的python,但每当我使用gtts ModuleNotFoundError:没有名为'main.gtts'的模块;'main'不是一个包或有时它说gtts模块无法从. gtts导入//Traceback(最近的调用最后):File"C:/用户/DELL/Desktop/text2speech.py",第1行,从. gtts导入gT