9

git latest zBar QR Code Scanner (SDK 0.2) からダウンロードしました。アプリケーションに実装しようとしています。私はAndroid Studioで作業しています。

私が何をした:

  1. プロジェクトの libs フォルダーに zBar.jar をコピーしました。
  2. 「amerabi」、「amerabi-v7a」、「x86」から *.jar ファイルを作成し、それらを圧縮して形式を *.jar に変更しました。
  3. amerabi.jar、amerabi-v7a.jar、x86.jar をプロジェクトの libs フォルダーにコピーしました。
  4. libs プロジェクトからすべての jar ファイルをインポートするように既に構成されているため、gradle を変更する必要はありません。下記参照:

    dependencies {
        compile 'com.android.support:support-v4:18.0.+'
        compile 'com.crashlytics.android:crashlytics:1.+'
    
        compile fileTree(dir: 'libs', include: '*.jar')
    
        compile project(':FacebookSDK')
        compile project(':actionbarsherlock')
        compile project(':Aviary-SDK')
    }
    
  5. すべてのクラス フォーム zBar lib が表示されるので、すべてを構成しました。ScannerActivity を実行すると、onCreate で次の行にエラーが表示されます。

    scanner = new ImageScanner();  // this line shows an error
    scanner.setConfig(0, Config.X_DENSITY, 3);
    scanner.setConfig(0, Config.Y_DENSITY, 3);
    

したがって、実装は例と同じ 1:1 です。

私のエラーログ:

java.lang.UnsatisfiedLinkError: Couldn't load zbarjni from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/pl.toptof.android.debug-2.apk"],nativeLibraryDirectories=[/data/app-lib/pl.toptof.android.debug-2, /vendor/lib, /system/lib]]]: findLibrary returned null

その問題で私を助けてください。Android Studio が lib を参照できるのに、例で使用されているのと同じ方法で使用できない理由がわかりません。

4

4 に答える 4

1

ディレクトリarmeabiarmeabi-v7a、およびx86を、ルート プロジェクト フォルダの下のnative-libsというサブディレクトリに配置します。次に、これらの設定をbuild.gradleファイルに追加します。

android {
    // other settings
    sourceSets {
            main {
                jni.srcDirs=[] //to suppress makefiles autogeneration
                jniLibs.srcDirs=['native-libs'] //native *.so in armeabi x86 and mips to include
            }
        }
}

結果の .apk には、ネイティブ ライブラリが含まれているはずです。

于 2015-11-17T08:27:55.237 に答える
1

解決策は複雑すぎます。それを機能させるために私がしたことは、この例のサンプルソリューションで既にコンパイルされたjarファイルを使用することでした。それらを lib フォルダーにコピーし、gradle ファイルにも必ず追加してください。ただし、あなたの行compile fileTree(dir: 'libs', include: '*.jar')はうまくいくはずです。

于 2015-06-20T07:33:55.300 に答える