需要答案直接看1.3的d项。
参考:java.lang.UnsatisfiedLinkError: Couldn’t load hyphenate_av from loader dalvik.system.PathClassLoader
1.1.原因是android studio导入so文件没有编译到apk里面去,所以导致UnsatisfiedLinkError异常。打开app下的build.gradle,在android的标签下加入如下代码:
android {
... ...
sourceSets{
main{
jniLibs.srcDirs = ['libs']
}
}
... ...
}
1.2.但是出现编译不通过的情况,增加以下代码,同样是在android标签下;
sourceSets.main {
jni.srcDirs = []
}
1.3.一共尝试了三种方案:
a,将so文件放在libs目录下,按照上面的方式在gradle中配置,测试没有报错。
b,通过其它配置,不将libs文件放在so文件也可以处理。
主要还是gradle的配置问题。
c,最初在android的defaultConfig标签下采用下面的配置,提示未找到so文件。
ndk {
moduleName "serial_port"
}
sourceSets.main {
jniLibs.srcDir 'libs'
jni.srcDirs = []
}
d,简化配置,也就是最终配置,将c中的配置替换一下方式(在android的defaultConfig标签下配置),so文件放在jnilibs目录下,测试,解决掉了。
sourceSets {
main { jni.srcDirs = [] }
}
参考
参考:Android Studio 3.1.2 新项目报错 AAPT2 error: check logs for details (Gradle 3.1.2)
通过命令查看日志,在最底部的上方位置提示
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Failed to process resources, see aapt output above for details.
继续查看,根据提示,找到相关代码(读取视频资源问题导致的错误),先注释相关代码进一步排查:
Try:
Run with --debug option to get more log output. Run with --scan to get full insights.
future=com.google.common.util.concurrent.SettableFuture@102f0881}): D:\project_new_as_version\ClassCadOfPrimaryNew\app\build\intermediates\res\merged\debug\raw_school_safe.mp4.flat: error: failed to read data meta data.
AAPT1 err(Facade for 518579500): error: failed parsing overlays.
参考:TaskExecutionException: Execution failed for task ':app:transformJackWithJackForDebug’最权威有效的解决方案
在Android studio的Terminal中直接操作,敲入下方的命令,查看详细的错误信息:
gradlew compileDebugSources --stacktrace -info
查看,联网模块的依赖使用了implement而不是api导致主mudle中不能使用联网框架。
参考1,然没有效果。
接着搜索,参考2,同上一篇博客是一样的思路。
于是尝试将 implementation rootProject.ext.dependencies[“design”]
更改为implementation ‘com.android.support:design:28.0.0’,两者实际是一模一样的,但是通过后面一种方式,执行clean——syn——运行,项目没有报错。这如何解释,android studio玩套路啊。不管那么多了,项目赶进度,还有好多事,先执行下一个任务,继续开车。
补充内容:implementation rootProject.ext.dependencies 格式如何去掉指定的包
运行报错:More than one file was found with OS independent path ‘META-INF/proguard/androidx-annotations.pro’,
百度先,解决方案:在defaultConfig下增加packagingOptions,过滤掉提示重复的文件。
packagingOptions {
exclude 'META-INF/proguard/androidx-annotations.pro'
}
运行继续报错:Error:Execution failed for task ‘:app:clean’.
接着:重启as,clean-运行。正常运行,哈哈,车没有翻,nice哦。
Android Studio 项目报红叉无法运行的几种解决办法总结
参考第四种情况,问题得到处理。