1
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import com.musicg.fingerprint.FingerprintSimilarity;
import com.musicg.wave.Wave;

import java.io.FileNotFoundException;

public class MainActivity extends AppCompatActivity {

FingerprintSimilarity fingerprintsimilarity;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Wave wave =new Wave("raw/test.wav");
    Wave wave1=new Wave("raw/test.wav");
    fingerprintsimilarity = wave.getFingerprintSimilarity(wave1);
    float score = fingerprintsimilarity.getScore();
    float similarity = fingerprintsimilarity.getSimilarity();
    Log.d("HI", "Score : " + score + "\n Similarity : " + similarity);

}
}

为指纹匹配实现musicg会发生以下错误:

06-12 12:06:41.921 20132-20132/? 我/艺术:延迟启用 -Xcheck:jni 06-12 12:06:42.023 20132-20132/?W/System:ClassLoader 引用未知路径:/data/app/com.example.dhrum.fingerprintmatching-2/lib/arm64 06-12 12:06:42.037 20132-20132/? I/InstantRun: 启动即时运行服务器: 是主进程 06-12 12:06:42.098 20132-20132/? W/art:在 Android 4.1 之前,方法 android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode)错误地覆盖了 android.graphics.drawable.Drawable 06-12 12:06:42.191 20132-20132/? W/System.err: java.io.FileNotFoundException: raw/test.wav (没有这样的文件或目录) 06-12 12:06: 42.192 20132-20132/? W/System.err: at java.io.FileInputStream.open(Native Method) 06-12 12:06:42.192 20132-20132/? W/System.err:在 java.io.FileInputStream.(FileInputStream.java:146) 06-12 12:06:42.192 20132-20132/?W/System.err:在 java.io.FileInputStream.(FileInputStream.java:99) 06-12 12:06:42.192 20132-20132/?W/System.err:在 com.musicg.wave.Wave.(Wave.java:60) 06-12 12:06:42.192 20132-20132/? W/System.err:在 com.example.dhrum.fingerprintmatching.MainActivity.onCreate(MainActivity.java:20) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.app.Activity.performCreate(Activity.java:6760) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134) 06-12 12:06:42.192 20132-20132/?W / System.err:在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2681) 06-12 12:06:42.192 20132-20132/? W/System.err:在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2814) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.app.ActivityThread.-wrap12(ActivityThread.java) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.os.Handler.dispatchMessage(Handler.java:102) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.os.Looper.loop(Looper.java:154) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.app.ActivityThread.main(ActivityThread.java:6290) 06-12 12:06:42.192 20132-20132/?W / System.err:在java中。lang.reflect.Method.invoke(Native Method) 06-12 12:06:42.192 20132-20132/? W/System.err:在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 06-12 12:06:42.192 20132-20132/?W/System.err:在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 06-12 12:06:42.192 20132-20132/? W/System.err: java.io.FileNotFoundException: raw/test.wav (没有这样的文件或目录) 06-12 12:06:42.192 20132-20132/? W/System.err: at java.io.FileInputStream.open(Native Method) 06-12 12:06:42.192 20132-20132/? W/System.err:在 java.io.FileInputStream.(FileInputStream.java:146) 06-12 12:06:42.192 20132-20132/?W/System.err:在 java.io.FileInputStream.(FileInputStream.java:99) 06-12 12:06:42.192 20132-20132/?W/System.err: 在 com.musicg.wave.Wave.(Wave.java: 60) 06-12 12:06:42.192 20132-20132/? W/System.err:在 com.example.dhrum.fingerprintmatching.MainActivity.onCreate(MainActivity.java:21) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.app.Activity.performCreate(Activity.java:6760) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2681) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2814) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.app.ActivityThread.-wrap12(ActivityThread.java) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.app。ActivityThread$H.handleMessage(ActivityThread.java:1527) 06-12 12:06:42.192 20132-20132/? W/System.err:在 android.os.Handler.dispatchMessage(Handler.java:102) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.os.Looper.loop(Looper.java:154) 06-12 12:06:42.192 20132-20132/?W/System.err:在 android.app.ActivityThread.main(ActivityThread.java:6290) 06-12 12:06:42.192 20132-20132/?W/System.err:在 java.lang.reflect.Method.invoke(Native Method) 06-12 12:06:42.193 20132-20132/? W/System.err:在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 06-12 12:06:42.193 20132-20132/?W/System.err:在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 06-12 12:06:42.195 20132-20132/?D/AndroidRuntime:关闭 VM 06-12 12:06:42。195 20132-20132/? E/AndroidRuntime:致命异常:主进程:com.example.dhrum.fingerprintmatching,PID:20132 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.dhrum.fingerprintmatching/com.example.dhrum.fingerprintmatching.MainActivity }:java.lang.NullPointerException:尝试在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2728) 的空对象引用上调用虚拟方法“int com.musicg.wave.WaveHeader.getSampleRate()”。 app.ActivityThread.handleLaunchActivity(ActivityThread.java: 1527) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6290) 在 java。在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 的 lang.reflect.Method.invoke(Native Method) ) 06-12 12:06:42.196 20132-20132/? D/AppTracker:应用事件:崩溃 06-12 12:06:42.216 20132-20132/? 我/过程:发送信号。PID:20132 SIG:9

我正在使用单声道 wav 文件,文件位于 app 文件夹内名为 raw 的文件夹中。

4

1 回答 1

0

你的错误是java.io.FileNotFoundException: raw/test.wav (No such file or directory)

尝试这个:-

 Wave wave =new Wave("R.raw.test"); // not ("raw/test.wav");
 Wave wave1=new Wnave("R.raw.test");

由于"test.wav"是 Android 资源中的文件,因此您必须以这种方式访问​​它。

于 2018-07-19T21:31:09.060 回答