安卓无法识别arm-debug变体和设备的apk。

4
我有.so文件和jar包,但运行时出现错误:无法识别变量arm-debug和设备的apk。我是个新手,肯定做错了什么,但我似乎想不出来。有什么想法吗?我正在使用Android Studio 1.1.0和Genymotion进行仿真。
这是我的构建文件的样子:
apply plugin: 'com.android.application'

android {

    compileSdkVersion 22
    buildToolsVersion "22.0.0"
    defaultConfig {
        applicationId "com.ctech.music.androidstreamer"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
        x86 {
            ndk {
                abiFilter "x86"
            }
        }
        arm {
            ndk {
                abiFilters "armeabi-v7a", "armeabi"
            }
        }
        mips {
            ndk {
                abiFilter "mips"
            }
        }

    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/notice.txt'
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.0.+'
    compile 'com.android.support:recyclerview-v7:22.0.+'
    compile files('libs/fmmr.jar')
}
1个回答

9
在您的 build.gradle 文件的 defaultConfig 中添加构建操作。
ndk {
        moduleName "yourlibraryname"
       }

像这样


defaultConfig {
        applicationId "com.ctech.music.androidstreamer"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"

        ndk {
        moduleName "yourlibraryname"
       }

    }

并将此添加到android {}检查结构的末尾
android {
  ...
  splits {
    abi {
      enable true
      reset()
      include 'x86', 'armeabi-v7a', 'mips'
      universalApk true
    }
  }
}

非常感谢!但是还有一个错误,提示“java.lang.UnsatisfiedLinkError”,找不到我的_jni.so文件。在分割后加上这个代码,问题得到了解决并且程序成功运行!sourceSets { main { jniLibs.srcDir file('libs/') } } - Badger
好的,如果它能正常工作,请将其标记为有效答案,谢谢! - anquegi
我正在使用com.android.tools.build:gradle-experimental:0.1.0,我必须做splits.with {},其余部分相同。 - Saeid Farivar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接