Reputation: 462
I am using Samsung's Motion library to create a pedometer for Samsung phones. When I create an APK without minification in the gradle configuration file the system works. However when I try to apply minification before releasing to the store,
buildTypes {
release {
minifyEnabled true
signingConfig signingConfigs.config
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable false
jniDebuggable false
}
I got errors claiming the some libraries (e.g. android.hardware.motion
) do not exist.
I have checked and:
Class.forName("android.hardware.scontext.SContextManager");
If I remove the line minifyEnabled true I got no error, so it must be the code obfuscation.
I have tried to add to my proguard rules file statements such as
-keep class android.hardware.** { *; }
-keep class com.samsung.android.sdk.** { *; }
but this does not seem to work. Any idea? Thanks!
Upvotes: 0
Views: 545
Reputation: 6200
The missing classes are indeed only available on the actual device. In order to let ProGuard process your application, you will have to include the following configuration:
-dontwarn com.samsung.android.sdk.motion.**
-dontnote com.samsung.android.sdk.motion.**
This will ignore the warnings and notes originating from the samsung sdk.
Upvotes: 1