2017-07-06 3 views
2

私はアンドロイドアプリケーションでlibusbを使用しています。 libusbネイティブライブラリをビルドしようとすると、以下のエラーメッセージが表示され、* .soファイルが生成されます。OS独立パス 'lib/x86/libusb.so'で複数のファイルが見つかりました

Error:Execution failed for task ':app:transformNativeLibsWithMergeJniLibsForDebug'. More than one file was found with OS independent path 'lib/x86/libusb.so'

enter image description here

build.gradle

import org.apache.tools.ant.taskdefs.condition.Os 

apply plugin: 'com.android.application' 

apply plugin: 'kotlin-android' 

apply plugin: 'kotlin-android-extensions' 

android { 
    compileSdkVersion 26 
    buildToolsVersion "26.0.0" 
    defaultConfig { 
     applicationId "com.williams.libusbpoc" 
     minSdkVersion 21 
     targetSdkVersion 26 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    externalNativeBuild { 
     ndkBuild { 
      path 'src/main/jni/Android.mk' 
     } 
    } 

    sourceSets.main { 
     jniLibs.srcDir 'src/main/libs' 
     jni.srcDirs = [] //disable automatic ndk-build call 
    } 

    // call regular ndk-build(.cmd) script from app directory 
    task ndkBuild(type: Exec) { 
     if (Os.isFamily(Os.FAMILY_WINDOWS)) { 
      commandLine 'ndk-build.cmd', '-C', file('src/main').absolutePath 
     } else { 
      commandLine 'ndk-build', '-C', file('src/main').absolutePath 
     } 
    } 

    tasks.withType(JavaCompile) { 
     compileTask -> compileTask.dependsOn ndkBuild 
    } 
} 

dependencies { 
    implementation fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestImplementation ('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" 
    implementation 'com.android.support:appcompat-v7:26.0.0-beta2' 
    testImplementation 'junit:junit:4.12' 
    implementation 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile "org.jetbrains.anko:anko-appcompat-v7-commons:$anko_version" 
} 

私はWindowsマシン上でです。誰が問題になるかも知っていますか?

答えて

6

sourceSets.mainブロック内にjniLibs.srcDir 'src/main/libs'コードを削除しました。 * .soファイルを2回作成していました。

sourceSets.main { 
    jniLibs.srcDir 'src/main/libs' 
    jni.srcDirs = [] //disable automatic ndk-build call 
} 
+0

ありがとうナンシー私のアプリで働いた –

+0

私のために働かなかった: エラー:(25、1)プロジェクト ':app'を評価中に問題が発生しました。 >クラス 'java.lang.String'を持つオブジェクト 'src/main/jni/lib'をクラス 'java.lang.Iterable'にキャストできません – Paamand

3

Androidスタジオ3.0への移行後、私のアプリを実行しても同様のエラーが発生しました。クリーンで問題を解決しました。

関連する問題