我使用Samsung's Motion library爲三星手機創建計步器。當我在gradle配置文件中創建一個沒有縮小的APK時,系統就可以工作。然而,當我嘗試釋放到商店之前申請縮小,Android:迷你混淆動態訪問類
buildTypes {
release {
minifyEnabled true
signingConfig signingConfigs.config
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable false
jniDebuggable false
}
我的錯誤聲稱某些庫(例如android.hardware.motion
)不存在。 我已經檢查過:
- android.hardware.motion不是一個標準庫(?大概只能存在於三星手機)在android.hardware
- 這些類存取動態(?也許是因爲非標準),如
Class.forName("android.hardware.scontext.SContextManager");
如果我刪除minifyEnabled真正 行 我沒有錯誤,那麼它必須是代碼混淆。
我試圖添加到我的proguard的規則文件語句,如
-keep class android.hardware.** { *; }
-keep class com.samsung.android.sdk.** { *; }
但這似乎並沒有工作。 有什麼想法?謝謝!
您是否嘗試禁用proguard並檢查發佈.apk? –
我插入:'-dontoptimize -dontshrink -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose'但如果您使用的gradle產出(即推薦),你只需要去掉開頭的行'proguardFiles'沒有幫助 – FabioC
('android.buildTypes.release'部分)。 –