2017-12-29 37 views
0

すべきこと:埋め込まれたZXINGのバーコードをスキャンし、バーコードをアプリのSQLite databaseに保存します。エラーzxingでスキャンした後にデータをデータベースに保存する

まず、バーコードをスキャンして、画面上にToast-Messageと表示してみましたが、これまでのところうまく機能しました。

その後、barcodeをデータベースに挿入する機能を追加しました。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); 
    if(result != null) { 
     if(result.getContents() == null) { 
      Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show(); 
     } else { 
      addAP(result.getContents()); 
     } 
    } else { 
     super.onActivityResult(requestCode, resultCode, data); 
    } 
} 

private void addAP(String barcodeNumber) { 

    int codeLength = barcodeNumber.length(); 
    barcodeNumber = barcodeNumber.substring(4,codeLength - 1); 
    int APID = Integer.parseInt(barcodeNumber); 
    //Toast.makeText(this, "Scanned: " + APID, Toast.LENGTH_LONG).show(); 

    String title = "TestAP-" + barcodeNumber; 

    ContentValues values = new ContentValues(); 
    values.put(APEntry.AP_ID, 13222); 
    values.put(APEntry.AP_TITLE, title); 

    Toast.makeText(this, APEntry.CONTENT_URI.toString(), Toast.LENGTH_LONG).show(); 
    getContentResolver().insert(APEntry.CONTENT_URI, values); 

} 

私もZXINGする意図をスキップし、直接onClick方法でaddAP関数を呼び出してみました:ここ

12-29 11:58:00.363 28012-28012/com.factory.future.ap_manager E/AndroidRuntime: FATAL EXCEPTION: main 
                      Process: com.factory.future.ap_manager, PID: 28012 
                      java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=49374, result=-1, data=Intent { act=com.google.zxing.client.android.SCAN flg=0x80000 launchParam=MultiScreenLaunchParams { mDisplayId=0 mBaseDisplayId=0 mFlags=0 } (has extras) }} to activity {com.factory.future.ap_manager/com.factory.future.ap_manager.MainActivity}: java.lang.IllegalArgumentException: Unknown URL content://com.factory.future.ap_manager/aps 
                       at android.app.ActivityThread.deliverResults(ActivityThread.java:4520) 
                       at android.app.ActivityThread.handleSendResult(ActivityThread.java:4563) 
                       at android.app.ActivityThread.-wrap22(ActivityThread.java) 
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1698) 
                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                       at android.os.Looper.loop(Looper.java:154) 
                       at android.app.ActivityThread.main(ActivityThread.java:6776) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 
                      Caused by: java.lang.IllegalArgumentException: Unknown URL content://com.factory.future.ap_manager/aps 
                       at android.content.ContentResolver.insert(ContentResolver.java:1276) 
                       at com.factory.future.ap_manager.MainActivity.addAP(MainActivity.java:116) 
                       at com.factory.future.ap_manager.MainActivity.onActivityResult(MainActivity.java:95) 
                       at android.app.Activity.dispatchActivityResult(Activity.java:7282) 
                       at android.app.ActivityThread.deliverResults(ActivityThread.java:4516) 
                       at android.app.ActivityThread.handleSendResult(ActivityThread.java:4563)  
                       at android.app.ActivityThread.-wrap22(ActivityThread.java)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1698)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:154)  
                       at android.app.ActivityThread.main(ActivityThread.java:6776)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)  

がスキャン結果を処理するためのコードです。それ以来、私は次のエラーを取得しています。そこに次のエラーを取得:

java.lang.IllegalArgumentException: Unknown URL content://com.factory.future.ap_manager/aps 

はここですべてのファイルへのリンクです: Link

+0

何かと間違っていると思われるAPEntry.CONTENT_URIを確認してください。 – Kushan

+0

既にチェックされています。 「ペット」とのクロスチェックでさえ、udacityでGoogleアンドロイドコースをやっている間にやった。 CONTENT_URIに何か問題が見つかりませんでした。 – 3dwa21

答えて

0

問題は解決します! CONTENT_URI自体は正しく戦っていますが、AndroidManifest.xmlではandroid:authorities="com.future.factory.ap_manager"の代わりにandroid:authorities="com.factory.future.ap_manager"と書いています。 (コードを見て何百回も見逃してしまいました)

関連する問題