2012-11-30 52 views
0

我不願意發表這個問題後,我的頭撞我的桌子和雕刻雖然相關帖子在stackoverflow,但只是不能解決問題。所以我們就在這裏。我正在嘗試將ZXing整合到我的Android應用程序中,因爲許多開發人員嘗試過,但始終得到相同的錯誤:Unable to start activity ComponentInfo。我添加了core.jar,並將活動和相機權限添加到清單。我知道這裏有一些非常簡單的東西我很想去做。嘗試使用意圖進行掃描時出現以下錯誤。我已經試過了通過ZXing庫並將所有switch語句更改爲if/else。我也曾嘗試在斑馬線佈局將我的包名稱,如這裏建議:Android ZXing implementationAndroid ZXing集成無法啓動活動錯誤

的Java:

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainMenu extends Activity { 

Button btn_scan 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_menu); 

    btn_scan = (Button) findViewById(R.id.btn_scanbarcode); 
    btn_scan.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

      Intent intent = new Intent(
        "com.google.zxing.client.android.SCAN"); 
      intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
      startActivityForResult(intent, 0); 

     } 
    }); 

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (requestCode == 0) { 
     if (resultCode == RESULT_OK) { 
      String contents = intent.getStringExtra("SCAN_RESULT"); 
      String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); 
      // Handle successful scan 
     } else if (resultCode == RESULT_CANCELED) { 
      // Handle cancel 
     } 
    } 
} 

} 

清單

<activity 
     android:name="com.google.zxing.client.android.CaptureActivity" 
     android:configChanges="orientation|keyboardHidden" 
     android:screenOrientation="landscape" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
     android:windowSoftInputMode="stateAlwaysHidden" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="com.google.zxing.client.android.SCAN" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

logcat的:

11-30 10:54:04.713: E/AndroidRuntime(15452): FATAL EXCEPTION: main 
11-30 10:54:04.713: E/AndroidRuntime(15452): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.testapp/com.google.zxing.client.android.CaptureActivity}: android.view.InflateException: Binary XML file line #27: Error inflating class com.android.testapp 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2240) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2275) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.app.ActivityThread.access$600(ActivityThread.java:139) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.os.Looper.loop(Looper.java:156) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.app.ActivityThread.main(ActivityThread.java:5060) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at java.lang.reflect.Method.invokeNative(Native Method) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at java.lang.reflect.Method.invoke(Method.java:511) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at dalvik.system.NativeStart.main(Native Method) 
11-30 10:54:04.713: E/AndroidRuntime(15452): Caused by: android.view.InflateException: Binary XML file line #27: Error inflating class com.android.testapp 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:278) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.app.Activity.setContentView(Activity.java:1897) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at com.google.zxing.client.android.CaptureActivity.onCreate(CaptureActivity.java:143) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.app.Activity.performCreate(Activity.java:4543) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2196) 
11-30 10:54:04.713: E/AndroidRuntime(15452): ... 11 more 
11-30 10:54:04.713: E/AndroidRuntime(15452): Caused by: java.lang.ClassNotFoundException: com.android.testapp 
11-30 10:54:04.713: E/AndroidRuntime(15452): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.view.LayoutInflater.createView(LayoutInflater.java:552) 
11-30 10:54:04.713: E/AndroidRuntime(15452): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
11-30 10:54:04.713: E/AndroidRuntime(15452): ... 21 more 
+0

在某個佈局的某個地方,有一種叫'testapp'的東西。請發佈相應的XML。這可能是問題的一部分。 – Codo

+0

只是想澄清。您想查看ZXing佈局或我稱之爲ZXing意圖的佈局嗎? – AndroidNewb

回答

1

您已經將zxing項目導入爲一個庫並去除不需要的類。這個過程很痛苦,但我得到了它的工作。

1

這裏有幾個問題,其中你試圖在你的應用程序中聲明我們的活動和命名空間。請不要這樣做。它不適合你,併爲我們的用戶造成問題。

你似乎想這樣做:https://github.com/zxing/zxing/wiki/Scanning-Via-Intent

如果是這樣它的方式很容易,你在這裏做了。

+0

肖恩我已經閱讀你的意見貫穿整個stackoverflow的這種方式使用Zxing。我非常感謝您的工作,並計劃在應用程序的關於部分爲您的團隊充分評價此功能。事實是有些用戶沒有將Scanner應用程序安裝到他們的設備上。此ScanningViaIntent是否支持尚未安裝掃描儀應用程序且不希望下載它的設備? – AndroidNewb

+1

我並不沮喪這種方法本身。我很沮喪1)接近完整的複製和粘貼,2)任何干擾我們的用戶的做法,由於錯誤的清單條目,這通常是因爲#1而出現的,3)浪費您的時間構建自己的未複製的UI if你不需要它。這不僅僅是獲得信貸的問題, Apache許可證已經要求您重複使用代碼。是的,Intent機制將幫助用戶安裝應用程序,如果它不存在。 –

+1

感謝Sean的迴應。它不回答我原來的問題。我不打算只複製和粘貼你的代碼。我唯一的目標就是在開始對您提供的實際代碼進行更改之前讓它工作。我不介意建立自己的用戶界面。許多開發者已經這樣做了,我希望他們能夠帶領我走向正確的方向。請不要懲罰我們,許多用戶已經安裝了條碼掃描器應用程序,有些則不會。我只想涵蓋那些不想下載額外應用程序的用戶。我明白你是否不想幫忙。 – AndroidNewb

相關問題