2013-05-08 152 views
0

我正試圖在我的android應用中實現QR碼閱讀器。我按照下列步驟操作:無法在我的Android應用中實現QR碼閱讀器

  1. 創建從zxing.zip樣本庫項目,/ Android和/核心

  2. 新增創建的庫到我的應用

我的代碼如下所示:

public class main extends Activity { 
/** Called when the activity is first created. */ 

Button scanButton; 

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

    scanButton = (Button) findViewById(R.id.button1); 

    scanButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 

      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 
     } 
    } 
} 

掃描儀不啓動,我得到此錯誤:

05-08 14:12:03.313: ERROR/AndroidRuntime(718): Caused by: java.lang.ClassNotFoundException: com.google.zxing.client.android.CaptureActivity in loader dalvik.system.PathClassLoader[/data/app/com.scanner.demo-2.apk] 

清單:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.scanner.demo" android:versionCode="1" android:versionName="1.0"> 
<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".main" android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="com.google.zxing.client.android.CaptureActivity" 
     android:screenOrientation="landscape" 
     android:configChanges="orientation|keyboardHidden" 
     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> 
</application> 

+0

你可以指定你問請的實際問題?它如何失敗?它在哪裏失敗? – 2013-05-08 08:37:26

+0

@NeilTownsend掃描器犯規就我得到這個錯誤:05-08 14:12:03.313:ERROR/AndroidRuntime(718):拋出java.lang.ClassNotFoundException:致com.google.zxing.client.android.CaptureActivity在裝載機dalvik.system.PathClassLoader [/data/app/com.scanner.demo-2.apk] – 2013-05-08 08:39:51

+0

如果你是,由@Sean歐文指出,結合第三方的代碼到你的應用程序,它是重要的(一)堅持他們建議的做法,並(b)確保您沒有違反軟件包的版權。即使你試圖做的事情可能在技術上是可能的,但在這種情況下不是這樣做的。 – 2013-05-08 09:01:39

回答

2

你爲什麼把這個在你的清單?

<activity 
    android:name="com.google.zxing.client.android.CaptureActivity" 
... 
</activity> 

您是從Zxing調用內部活動還是應用程序?

+0

我製作了一個圖書館項目,其中有Zxing應用程序 – 2013-05-08 08:45:15

+0

是的,這是錯誤。沒有人應該在他們的清單中聲明*我們的應用程序*。 – 2013-05-08 08:50:24

2

這很混亂。你似乎想整合Intent,這是上半年的事情。但是你似乎已經複製了我們的Manifest。爲什麼?請刪除。這是不需要的,會導致你的錯誤,如果你放棄它,干擾我們的應用程序。

這就是你需要:https://code.google.com/p/zxing/wiki/ScanningViaIntent

+0

我如何使用這堂課? – 2013-05-08 09:05:41

+0

我仍然收到這個錯誤從清單中除去的代碼之後:05-08 14:39:55.970:ERROR/AndroidRuntime(859):拋出java.lang.ClassNotFoundException:com.google.zxing.client.android所致。加載器中的CaptureActivity dalvik.system.PathClassLoader [/data/app/com.scanner.demo-2.apk] – 2013-05-08 09:10:14

+0

有人可以給我解決我的問題的步驟。一些代碼可能是 – 2013-05-08 09:19:46