2012-04-25 75 views
0

我想实现一个类到我的项目中......但是在调用意图onClick当按钮被按下时它给我一个错误。这里是我的代码片段,看看你能否帮助我。ClassNotFoundException/RuntimeException

文件名:

QrCapture.java
qrcapture.xml

在我的Android清单我:

<activity android:name=".QrCapture" 
     android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <action android:name="org.jujitsu.app.qrcapture" /> 
      <category android:name="android.intent.category.DEFAULT"/> 
     </intent-filter> 
    </activity> 

在qrcapture.xml文件我有:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" /> 
    <FrameLayout 
    android:layout_width="200dip" 
    android:layout_height="200dip" 
    android:layout_gravity="center_horizontal"> 
    <include layout="@layout/capture"/> 

</FrameLayout> 
</LinearLayout> 

我qrcapture.java文件包含以下来源:

package org.jujitsu.app.com; 
import android.graphics.Bitmap; 
import android.os.Bundle; 
import android.widget.Toast; 

public class QrCapture extends CaptureActivity { 

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

//TODO Save bitmap to file. 

@Override 
public void handleDecode(Result rawResult, Bitmap barcode) 
{ 
    Toast.makeText(this.getApplicationContext(), "Scanned code "+ rawResult.getText(), Toast.LENGTH_LONG); 
} 

} 

我开始以这种方式活动:

Intent i = new Intent("org.jujitsu.app.qrcapture"); 
startActivity(i); 

,这里是我得到的错误:

04-25 16:49:09.220: E/AndroidRuntime(1010): FATAL EXCEPTION: main 

04-25 16:49:09.220: E/AndroidRuntime(1010): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.jujitsu.app.com/org.jujitsu.app.com.QrCapture}: java.lang.ClassNotFoundException: org.jujitsu.app.com.QrCapture 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2118) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2237) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at android.app.ActivityThread.access$600(ActivityThread.java:139) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at android.os.Handler.dispatchMessage(Handler.java:99) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at android.os.Looper.loop(Looper.java:154) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at android.app.ActivityThread.main(ActivityThread.java:4974) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at java.lang.reflect.Method.invokeNative(Native Method) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at java.lang.reflect.Method.invoke(Method.java:511) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at dalvik.system.NativeStart.main(Native Method) 

04-25 16:49:09.220: E/AndroidRuntime(1010): Caused by: java.lang.ClassNotFoundException: org.jujitsu.app.com.QrCapture 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at android.app.Instrumentation.newActivity(Instrumentation.java:1039) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2109) 

04-25 16:49:09.220: E/AndroidRuntime(1010):  ... 11 more 

干杯!

+0

请不要在下次添加双行间距.. – Ronnie 2012-04-25 16:25:03

回答

0

您如何处理活动QrCapture中的操作?

onNewIntent这样实现看看...可能是这将有助于

它看起来像

public void onNewIntent(Intent intent) 
{ 
    String action = intent.getAction(); 

if(action.equals("UR ACTION NAME") 
{ 
    // do ur stuff here 
} 
} 
0

你可以试着开始这样的意图,而不是:

Intent intent = new Intent(FirstActivity.this, QrCapture.class); 
startActivity(intent); 
+0

仍然崩溃: jimbob 2012-04-25 16:39:29

+0

我刚刚注意到,你的QrCapture类在org.jujitsu.app.com包中,所以你需要将它移动到org.jujitsu.app或者在清单文件中改名为android :名称= “com.QrCapture”。 – Michaeldcooney 2012-04-25 16:46:30

0

尝试将全包名称放在清单中

<activity android:name="org.jujitsu.app.com.QrCapture"