高版本Gradle加载so文件的问题

最近需要做关于人脸识别的项目,碰到个加载so文件的问题。在此记录一下。

低版本gradle https://services.gradle.org/distributions/gradle-4.4-all.zip com.android.tools.build:gradle:3.1.2

高版本gradle https://services.gradle.org/distributions/gradle-6.1.1-all.zip com.android.tools.build:gradle:4.0.1

先说一下现象 在高版本中工程中的libs中加入了一个aar文件 并且在app.gradle中加入了

repositories{
          
   
        flatDir{
          
   
            dirs libs
        }
    }
dependencies {
          
   
    implementation(name: sdk, ext: aar)
}

sdk.aar中

public class MainActivity extends AppCompatActivity {
          
   
    static {
          
   
        System.loadLibrary("xxx");
    }
}

启动应用后就报错,说找不到libxxx.so文件,一脸懵逼。 在同事电脑中,可以正常运行。后来把他的工程拿过来看了下,对比了一下,代码完全一样。唯一不一样的就是gradle版本了。我就试了一下。 嘿!还真的正常了。

因为在aar文件中 架构是armeabi-v7a的。所以在app.gradle中加入

ndk{
          
   
            abiFiltersarmeabi-v7a
        }

即可

经验分享 程序员 微信小程序 职场和发展