代码之家  ›  专栏  ›  技术社区  ›  dev90

因此模块中定义的文件不会成为最终APK的一部分

  •  -1
  • dev90  · 技术社区  · 7 年前

    我已通过访问添加了库 File->New->Import Module . 模块出现了多个 .so

    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file
    

    /data/app/com.==/base.apk/lib/armeabi-v7a,/system/lib, /system/vendor/lib]]]找不到“libAAA.so”

    文件在库模块的以下结构中定义。

    src ->main ->jniLibs ->arm64-v8a/armeabi/x86/ -> libAA.so/libBB.so

    库生成.gradle

    dependencies {
        compile 'com.android.support:support-v4:27.1.1'
        compile fileTree(dir: 'libs', include: '*.jar')
        compile fileTree(dir: "$buildDir/native", include: 'native.jar')
    }
    
    task nativeLibsToJar(type: Zip, description: 'create a jar archive of the native libs (*.so files)') {
        destinationDir file("$buildDir/native")
        baseName 'native'
        extension 'jar'
        from fileTree(dir: 'libs', include: '**/*.so')
        into 'lib/'
    }
    
    tasks.withType(JavaCompile) {
        compileTask -> compileTask.dependsOn(nativeLibsToJar)
    }
    

    include ':app', ':myLibrary'
    

    应用程序级别:build.gradle

    android {
        compileSdkVersion 27
        defaultConfig {
    
        ndk {
                abiFilters "armeabi", "armeabi-v7a", "x86"
            }
        }
    
        productFlavors {
        }
    
        aaptOptions {
            cruncherEnabled = false
        }
    
      dexOptions {
            javaMaxHeapSize "4g" //specify the heap size for the dex process
            preDexLibraries false
        }
    
        lintOptions {
            abortOnError false
        }
    
    }
    
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation project(':myLibrary')
    }
    
    repositories {
    
        flatDir {
            dirs 'libs'
        }
    }
    

    Native Libs Monitor 所以呢 在库模块中定义的文件。

    1 回复  |  直到 7 年前
        1
  •  1
  •   navylover    7 年前

    这是文件夹结构:

    src ->main ->jniLibs ->arm64-v8a/armeabi/x86/ -> libAA.so/libBB.so
    

    这是NDK部分:

        ndk {
                abiFilters "armeabi", "armeabi-v7a", "x86"
            }
    

    -v8a和-v7a是不同的。