Android-приложение Zxing Causing для принудительного закрытия - PullRequest
0 голосов
/ 09 ноября 2011

Всякий раз, когда происходит действие, которое инициирует сканирование, приложение-приложение для Android закрывается.В какой-то момент это сработало и вдруг перестало работать.Core.jar находится в папке lib.

Logcat:

11-08 18:13:16.490: E/AndroidRuntime(1667): FATAL EXCEPTION: main
11-08 18:13:16.490: E/AndroidRuntime(1667): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.picky.pickyeater/libcom.google.zxing.client.android.CaptureActivity}: java.lang.ClassNotFoundException: libcom.google.zxing.client.android.CaptureActivity in loader dalvik.system.PathClassLoader[/data/app/com.picky.pickyeater-1.apk]
11-08 18:13:16.490: E/AndroidRuntime(1667):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at android.os.Looper.loop(Looper.java:123)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at android.app.ActivityThread.main(ActivityThread.java:4627)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at java.lang.reflect.Method.invokeNative(Native Method)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at java.lang.reflect.Method.invoke(Method.java:521)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at dalvik.system.NativeStart.main(Native Method)
11-08 18:13:16.490: E/AndroidRuntime(1667): Caused by: java.lang.ClassNotFoundException: libcom.google.zxing.client.android.CaptureActivity in loader dalvik.system.PathClassLoader[/data/app/com.picky.pickyeater-1.apk]
11-08 18:13:16.490: E/AndroidRuntime(1667):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
11-08 18:13:16.490: E/AndroidRuntime(1667):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)

OnCreate ():

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

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

AndroidManifest.xml выдержка:

<activity
            android:configChanges="orientation|keyboardHidden"
            android:name="com.google.zxing.client.android.CaptureActivity"
            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>

.classpath:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
        <classpathentry kind="src" path="src"/>
        <classpathentry kind="src" path="gen"/>
        <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
        <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
        <classpathentry kind="lib" path="lib/gson-1.7.1.jar"/>
        <classpathentry kind="lib" path="lib/jsoup-1.6.1.jar"/>
        <classpathentry kind="lib" path="lib/core.jar"/>
        <classpathentry kind="output" path="bin/classes"/>
</classpath>

Ответы [ 4 ]

5 голосов
/ 18 июня 2012

Я знаю, что, согласно Шону выше, это технически неверно, но это было решено путем связывания его как библиотеки. В ZXing: 1. Щелкните правой кнопкой мыши на проекте2. Нажмите Свойства 3. Нажмите Android в боковом меню слева.4. Проверьте Является ли библиотека

В моем приложении: 1. Щелкните правой кнопкой мыши на проекте2. Нажмите Свойства 3. Нажмите Android в боковом меню слева.4. Нажмите Добавить 5. Выберите проект ZXing

5 голосов
/ 09 ноября 2011

zxing здесь ничего не делает. Вы скопировали и вставили наш код и не включили его в свой JAR. Вы просто видите ClassNotFoundException; Вы даже не дошли до того, что используете наш код.

FWIW, мы настоятельно не рекомендуем этот уровень копирования и вставки нашего открытого исходного кода. Пожалуйста, напишите свое собственное приложение, чтобы начать, и повторно используйте части, которые вам нужны. Из-за ошибки, кажется, это не то, что вы собираетесь.

Более строго, вы не должны использовать наше имя пакета.

2 голосов
/ 09 января 2013

По своему опыту, я столкнулся с той же проблемой.Но если вы используете eclipse, убедитесь, что вы включили REALLY библиотеку (CaptureActivity) в ваш собственный проект.

Чтобы проверить его еще раз: щелкните правой кнопкой мыши свой проект ->свойства -> раздел Android -> см. ГДЕ ВАША БИБЛИОТЕКА ЗЕЛЕНЫЙ .Если нет, это означает, что вы неправильно включили библиотеку.

Чтобы решить эту проблему, при попытке СОЗДАТЬ БИБЛИОТЕКУ ИЗ СУЩЕСТВУЮЩИХ БИБЛИОТЕК вы можете установить скопировать ее на диск

Надеюсь, что поможет

0 голосов
/ 18 октября 2012

Вы должны попытаться очистить все проекты библиотек zxing, все другие библиотеки, на которые есть ссылки, и проект вашего приложения. Это помогло мне с этим сообщением об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...