0

zxing プロジェクトをダウンロードし、ボタン付きの簡単なアクティビティを作成しました。この単純なアクティビティは、ボタンが押されたときに zxing プロジェクトを開始する必要があります。今私の問題は次のとおりです。ボタンを使用したこの単純なアクティビティを開始アクティビティにすることです。次のようにマニフェストファイルに次のタグを作成しました。

活動開始:

ダウンロードした zxing プロジェクトには、常に最初に起動されるアクティビティがあり、次のマニフェスト ファイルがあります。

<activity android:name=".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.LAUNCHER"/>
  </intent-filter>
  <intent-filter>
    <action android:name="com.google.zxing.client.android.SCAN"/>
    <category android:name="android.intent.category.DEFAULT"/>
  </intent-filter>
  <!-- Allow web apps to launch Barcode Scanner by linking to http://zxing.appspot.com/scan. -->
  <intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="http" android:host="zxing.appspot.com" android:path="/scan"/>
  </intent-filter>
  <!-- We also support a Google Product Search URL. -->
  <intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="http" android:host="www.google.com" android:path="/m/products
    /scan"/>
  </intent-filter>
  <!-- And the UK version. -->
  <intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="http" android:host="www.google.co.uk" android:path="/m
    /products/scan"/>
  </intent-filter>
</activity>

アクティビティをランチャーに変更した後の Logcat 出力:

09-20 12:39:57.527: E/AndroidRuntime(22519): FATAL EXCEPTION: main
09-20 12:39:57.527: E/AndroidRuntime(22519): java.lang.RuntimeException: Unable to 
resume activity 
{com.google.zxing.client.android/com.google.zxing.client.android.Test}: 
java.lang.NullPointerException
09-20 12:39:57.527: E/AndroidRuntime(22519):    at     
android.app.ActivityThread.performResumeActivity(ActivityThread.java:2456)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at 
android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2484)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1998)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at 
android.app.ActivityThread.access$600(ActivityThread.java:127)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at 
android.os.Handler.dispatchMessage(Handler.java:99)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at 
android.os.Looper.loop(Looper.java:137)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at 
android.app.ActivityThread.main(ActivityThread.java:4507)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at 
java.lang.reflect.Method.invokeNative(Native Method)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at  
java.lang.reflect.Method.invoke(Method.java:511)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at   
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at 
dalvik.system.NativeStart.main(Native Method)
09-20 12:39:57.527: E/AndroidRuntime(22519): Caused by: java.lang.NullPointerException
09-20 12:39:57.527: E/AndroidRuntime(22519):    at   
com.google.zxing.client.android.CaptureActivity.onResume(CaptureActivity.java:178)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at   
android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1157)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at  
android.app.Activity.performResume(Activity.java:4539)
09-20 12:39:57.527: E/AndroidRuntime(22519):    at   
android.app.ActivityThread.performResumeActivity(ActivityThread.java:2446)

作成した単純なアクティビティを開始アクティビティにする方法を知りたいだけです。つまり、単純なアクティビティのタグを zxing プロジェクトのマニフェスト ファイルのどこに配置するのでしょうか?

4

4 に答える 4

0

あなたがしなければならないのは変更することだけです:

<activity android:name="Leeder"

に:

<activity android:name="LeederTitleScreen"

タイトル画面でstartActivity()を使用してゲームを開始する場合は、マニフェストでLeederアクティビティを宣言する必要もあります。

編集:はい、セクションが必要です。これは、アクティビティが応答する暗黙のインテントをシステムに通知します。したがって、マニフェストでは、インテントフィルタは、android.intent.category.LAUNCHERインテントに応答することをシステムに通知します。これは、Androidがアプリの起動時にディスパッチするものです(つまり、アプリケーションの起動時にアクティビティを開始するようにAndroidに指示します)。 )。

簡単な説明は次のとおりです:http://developer.android.com/guide/components/intents-filters.html

于 2012-09-20T10:13:40.897 に答える
0

あなたの問題は静かでシンプルです。

メニフェスト ファイルのキャプチャ アクティビティからインテント フィルターを削除し、既に行っているようにアクティビティに配置するだけです。ランチャー アクティビティは 1 つのプロジェクトに 1 つある必要があるため、アクティビティでアプリケーションを起動する場合は、インテント フィルターを使用してメニフェスト ファイルでクラスをランチャー アクティビティとして作成する必要があります。

それはあなたの活動から始まります。

于 2012-09-20T10:16:08.107 に答える
0

LAUNCHERを使用してこのように簡単に

   <activity
            android:name=".YourActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
于 2012-09-20T10:20:57.820 に答える
0

削除した方がいいと思います

<intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
  </intent-filter>

CaptureActivityマニフェスト ファイルから。単純に追加する

<activity
        android:name=".Test"
        android:screenOrientation="portrait"
        android:configChanges = "keyboardHidden|orientation"
        android:label="@string/app_name01" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

あなたが示したコード部分の後。私はそれを試していませんでした。それが機能するかどうか教えてください。

于 2012-09-20T10:22:29.060 に答える