2015-10-02 45 views
0

所以,我试图在我的Android应用程序中实现一个QR扫描器,并且我正在使用Android Studio。用户只需点击(点击)一个按钮,即可将QR扫描仪调用到屏幕上。此时,用户可以扫描嵌入式URL的QR码并将其发送到该URL。很简单。为什么我的应用程序保持崩溃没有任何错误?

我正在使用[ZBar] [1]库。 我用这个真棒[教程] [1]。

我几乎跟着他的教程,正如他概述,复制和粘贴。我没有编译错误,应用程序没有任何问题;但是,在运行它时,模拟器会向我发送以下消息:“不幸的是,我的应用程序已停止。”

如果您需要了解更多信息,请告诉我。

这里是logcat的输出崩溃后:

10-02 16:56:26.732 18271-18271/v1.com.example.ggpcoding.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: v1.com.example.ggpcoding.myapplication, PID: 18271 
    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/v1.com.example.ggpcoding.myapplication-2/base.apk"],nativeLibraryDirectories=[/data/app/v1.com.example.ggpcoding.myapplication-2/lib/x86, /vendor/lib, /system/lib]]] couldn't find "libzbarjni.so" 
      at java.lang.Runtime.loadLibrary(Runtime.java:367) 
      at java.lang.System.loadLibrary(System.java:1076) 
      at net.sourceforge.zbar.ImageScanner.<clinit>(Unknown Source) 
      at v1.com.example.ggpcoding.myapplication.MainActivity.initControls(MainActivity.java:46) 
      at v1.com.example.ggpcoding.myapplication.MainActivity.onCreate(MainActivity.java:36) 
      at android.app.Activity.performCreate(Activity.java:6237) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
      at android.app.ActivityThread.-wrap11(ActivityThread.java) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:148) 
      at android.app.ActivityThread.main(ActivityThread.java:5417) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

这里的onCreate功能:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    initControls(); 
} 
+0

如果您的应用程序崩溃,则会出现logcat错误 - 请将其添加到问题中。 –

+0

告诉我们关于创建请 –

+0

那么你肯定有一个错误,它通常与试图加载使用JNI的库有关。搜索“java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader”,你会在SO上找到处理这个错误的各种答案。 – NoChinDeluxe

回答

0

你需要自己加载库。您可以在要使用扫描仪的第一个活动中使用以下代码。

static { 
    System.loadLibrary("iconv"); 
} 
+0

我在onCreate之前尝试过,但没有成功。 – srsopoci

0

你应该建立本地库中的所有CPU架构,以确保应用程序的所有设备上运行,我认为你没有基于该应用程序运行在设备上的正确版本。 我不确定,但我认为你应该为x86构建。 你可以使用android NDK构建本地库。

+0

请看看这个答案http://stackoverflow.com/questions/27186726/java-lang-unsatisfiedlinkerror-dalvik-system-pathclassloader –

相关问题