我正在尝试使用 Proguard 创建我的 android 项目的发布 apk。当我尝试生成签名的 apk 时收到以下警告:
我正在使用 Skobbler SDK 2.5.1 和 Android SDK 编译版本 23。
问题似乎是由于现在已弃用的 FloathMath 类引起的。
提前致谢!
(更新1):
Build fingerprint: 'Xiaomi/cancro/cancro:6.0.1/MMB29M/6.3.17:user/release-keys'
Revision: '0'
ABI: 'arm'
pid: 32188, tid: 32188, name: sal.bisite.example>>> es.usal.bisite.example<<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: 'art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.ClassNotFoundException: Didn't find class "com.skobbler.ngx.navigation.SKCrossingDescriptor" on path: DexPathList[[zip file "/data/app/es.usal.bisite.example-1/base.apk"],nativeLibraryDirectories=[/data/app/es.usal.bisite.example-1/lib/arm, /data/app/es.usal.bisite.example-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]'
r0 00000000 r1 00007dbc r2 00000006 r3 b6f3bb7c
r4 b6f3bb84 r5 b6f3bb34 r6 0000000b r7 0000010c
r8 b4abf378 r9 b4c6a800 sl 00000001 fp 00000001
ip 00000006 sp be84fe68 lr b6ca0c51 pc b6ca3040 cpsr 40070010
backtrace:
#00 pc 00042040 /system/lib/libc.so (tgkill+12)
#01 pc 0003fc4d /system/lib/libc.so (pthread_kill+32)
#02 pc 0001c3fb /system/lib/libc.so (raise+10)
#03 pc 000195ad /system/lib/libc.so (__libc_android_abort+34)
#04 pc 00017500 /system/lib/libc.so (abort+4)
#05 pc 003339f9 /system/lib/libart.so (art::Runtime::Abort()+228)
#06 pc 000f460b /system/lib/libart.so (art::LogMessage::~LogMessage()+2226)
#07 pc 0025aa5f /system/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1550)
#08 pc 0025ae0d /system/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+64)
#09 pc 000fd1e1 /system/lib/libart.so (art::ScopedCheck::AbortF(char const*, ...)+32)
#10 pc 001022f5 /system/lib/libart.so (art::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::JniValueType*) (.constprop.95)+5072)
#11 pc 001146e1 /system/lib/libart.so (art::CheckJNI::NewGlobalRef(_JNIEnv*, _jobject*)+392)
#12 pc 000fb13b /data/app/es.usal.bisite.example-1/lib/arm/libngnative.so (JniNG::JniNG(_JavaVM*, _JNIEnv*&)+554)
#13 pc 000e1d6f /data/app/es.usal.bisite.example-1/lib/arm/libngnative.so (JNI_OnLoad+58)
#14 pc 0025b397 /system/lib/libart.so (art::JavaVMExt::LoadNativeLibrary(_JNIEnv*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, _jobject*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)+1238)
#15 pc 002d145f /system/lib/libart.so (art::Runtime_nativeLoad(_JNIEnv*, _jclass*, _jstring*, _jobject*, _jstring*)+194)
#16 pc 739f427d /data/dalvik-cache/arm/system@framework@boot.oat (offset 0x235e000)
(更新2) 我解决了这个添加这个proguard规则:
#SKOBBLER
-keep class com.skobbler.** { *; }
你能告诉我一些具体的规则吗?
提前致谢!
最佳答案
我们有一个针对 2.5.1 SDK 的热修复程序,用于针对 API 级别 23 进行编译:https://www.dropbox.com/s/5gcf3gmex3oz8l9/API_Level%2023_Fix.zip?dl=0
请测试一下,如果一切正常请告诉我们。
关于android - Skobbler MapRenderer 警告 ProGuard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36293390/