Mou*_*heg 3 android proguard gradle dexguard
我在尝试将dexguard集成到我的android/gradle项目时遇到了一些麻烦.
我遇到以下错误apply plugin: 'dexguard':
Error:Unable to load class 'com.android.builder.SdkParser'
Run Code Online (Sandbox Code Playgroud)
编辑:
这是我的应用程序的gradle文件:
buildscript {
repositories {
flatDir { dirs '/usr/local/DexGuard5.5.32/lib' }
jcenter()
}
dependencies {
classpath ':dexguard:'
classpath 'com.android.tools.build:gradle:1.3.0'
}
}
apply plugin: 'com.android.application'
apply plugin: 'dexguard' //This, when uncommented produces the error
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile files('libs/commons-collections4-4.0.jar')
compile files('libs/commons-codec-1.10.jar')
compile files('libs/gson-2.3.1.jar')
compile files('libs/jaxb2-maven-plugin:2.1.jar')
compile project(':sdk')
compile project(':zxing-lib')
}
android {
signingConfigs {
release {
//my signing config
}
}
compileSdkVersion 22
buildToolsVersion '23.0.1'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src/main/java', 'src/main/native', 'src/test/java']
resources.srcDirs = ['src/main/java', 'src/main/native', 'src/test/java']
aidl.srcDirs = ['src/main/java', 'src/main/native', 'src/test/java']
renderscript.srcDirs = ['src/main/java', 'src/main/native', 'src/test/java']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
buildTypes {
//The following should be uncommented when dexuard works!!!
// debug {
// proguardFile plugin.getDefaultDexGuardFile('dexguard-debug.pro')
// proguardFile 'dexguard-project.txt'
// proguardFile 'dexguard-project-debug.txt'
// proguardFile 'proguard-project.txt'
// }
// release {
// proguardFile plugin.getDefaultDexGuardFile('dexguard-release.pro')
// proguardFile 'dexguard-project.txt'
// proguardFile 'dexguard-project-release.txt'
// proguardFile 'proguard-project.txt'
// }
}
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:deprecation"
}
}
}
defaultConfig {
targetSdkVersion 22
signingConfig signingConfigs.release
}
productFlavors {
app2 {
applicationId "some.app.id"
}
app {
applicationId "some.app.id2"
}
}
}
Run Code Online (Sandbox Code Playgroud)
你的想法是什么 ??
您的DexGuard插件看起来非常过时.根据GuardSquare网站的最新版本是7.0.22.
升级是强制性的,因为版本7.x带来了与gradle-plugin 1.3.x和build-tools 23.x的兼容性.
Error:Unable to load class 'com.android.builder.SdkParser'
Run Code Online (Sandbox Code Playgroud)
原因
这个问题是由于android gradle插件与gradle版本不匹配引起的。
实际上你使用的是旧版本 DexGuard5.5.32。这就是为什么有问题。使用最新版本的 Dexguard以及最新的 SDK 和 gradle 插件。
本部分将引导您完成使用 DexGuard 强化应用程序的步骤,从确保通信安全,一直到加密字符串和类。
并升级您的tools.build:gradle版本以获得更好的方法。
dependencies {
classpath ':dexguard:'
classpath 'com.android.tools.build:gradle:1.4.0-beta2'
}
Run Code Online (Sandbox Code Playgroud)
您可以设置compileSdkVersion 23 而不是 22。
试试这个方法。希望对你有帮助。
| 归档时间: |
|
| 查看次数: |
4395 次 |
| 最近记录: |