我正在尝试构建连接我的Pixel手机的应用程序。我最近将手机升级到Android 8.我能够在手机中构建和打开应用程序直到上次升级,但在升级之后,我得到失败[INSTALL_FAILED_NO_MATCHING_ABIS:无法提取本机库,res = -113 ] 错误。
下面是我的gradle文件。有人可以告诉我这是什么问题吗?
def crc32_stm(bytes_arr):
length = len(bytes_arr)
crc = 0xffffffff
k = 0
while length >= 4:
v = ((bytes_arr[k] << 24) & 0xFF000000) | ((bytes_arr[k+1] << 16) & 0xFF0000) | \
((bytes_arr[k+2] << 8) & 0xFF00) | (bytes_arr[k+3] & 0xFF)
crc = ((crc << 8) & 0xffffffff) ^ custom_crc_table[0xFF & ((crc >> 24) ^ v)]
crc = ((crc << 8) & 0xffffffff) ^ custom_crc_table[0xFF & ((crc >> 24) ^ (v >> 8))]
crc = ((crc << 8) & 0xffffffff) ^ custom_crc_table[0xFF & ((crc >> 24) ^ (v >> 16))]
crc = ((crc << 8) & 0xffffffff) ^ custom_crc_table[0xFF & ((crc >> 24) ^ (v >> 24))]
k += 4
length -= 4
if length > 0:
v = 0
for i in range(length):
v |= (bytes_arr[k+i] << 24-i*8)
if length == 1:
v &= 0xFF000000
elif length == 2:
v &= 0xFFFF0000
elif length == 3:
v &= 0xFFFFFF00
crc = (( crc << 8 ) & 0xffffffff) ^ custom_crc_table[0xFF & ( (crc >> 24) ^ (v ) )];
crc = (( crc << 8 ) & 0xffffffff) ^ custom_crc_table[0xFF & ( (crc >> 24) ^ (v >> 8) )];
crc = (( crc << 8 ) & 0xffffffff) ^ custom_crc_table[0xFF & ( (crc >> 24) ^ (v >> 16) )];
crc = (( crc << 8 ) & 0xffffffff) ^ custom_crc_table[0xFF & ( (crc >> 24) ^ (v >> 24) )];
global stmCrc
stmCrc = crc
return crc
答案 0 :(得分:20)
它有同样的问题,它在用一个不同的commons-io替换一个apache库(commons-io)之后起作用,它来自另一个bundle。
切换到新的开发设备(Pixel Phone w / Android 8.0 Oreo)后,问题出现了。
在您的情况下,您可以停止使用文件系统中的本地jar(compile fileTree(include: ['*.jar'], dir: 'libs')
)并使用bintray中的正确gradle依赖项(例如)。
错误: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
dependencies {
compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
compile 'commons-cli:commons-cli:1.4'
}
build.gradle
工件commons-io
工作:dependencies {
...
compile group: 'commons-io', name: 'commons-io', version: '2.5'
compile group: 'commons-cli', name: 'commons-cli', version: '1.4'
...
}
忽略不同的依赖符号,它并不重要
您定义了多个目标ABI,您是否检查了您的设备支持哪个。也许您必须添加另一个,以便与您的设备ABI兼容。
您可以在Application.mk
另见:
答案 1 :(得分:0)
这可能有效:
splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'arm64-v8a'
universalApk false
}
}