【问题标题】:runtime crash using with zbar.jar while building android system app using android.mk使用 android.mk 构建 android 系统应用程序时使用 zbar.jar 运行时崩溃
【发布时间】:2015-09-22 05:57:42
【问题描述】:
Hi I am trying to build an system application in android build system which uses <zbar.jar> file" and "armeabi-v7a\libiconv.so" ,"armeabi-v7a\libzbarjni.so libs".

I get error as

09-21 21:14:32.614: E/AndroidRuntime(5217): java.lang.NoSuchFieldError: no field with name='data' signature='Ljava/lang/Object;'在 Lnet/sourceforge/zbar/Image 类中;

09-21 21:14:32.614: E/AndroidRuntime(5217): at net.sourceforge.zbar.Image.init(Native Method)

09-21 21:14:32.614:E/AndroidRuntime(5217):在 net.sourceforge.zbar.Image.(未知来源)

I have added dependencies in android.mk as below:

LOCAL_STATIC_JAVA_LIBRARIES := libzbar
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += libzbar:libs/zbar.jar

include $(CLEAR_VARS)
LOCAL_MODULE        := libiconv
LOCAL_MODULE_CLASS  := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_TAGS   := optional
LOCAL_SRC_FILES     := libiconv.so
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE        := libzbarjni
LOCAL_MODULE_CLASS  := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_TAGS   := optional
LOCAL_SRC_FILES     := libzbarjni.so
include $(BUILD_PREBUILT)

i have also enabled 
"proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt" line in project.properties and 
added "-keep class net.sourceforge.zbar.** { *; }" in progaurd.cfg file.

感谢任何帮助。 谢谢

【问题讨论】:

    标签: android zbar


    【解决方案1】:

    系统构建使用来自:build\core\proguard.flags 的 proguard 文件

    如果你必须定义自定义proguard,那么在Android.mk中你需要提到文件路径:LOCAL_PROGUARD_FLAG_FILES := proguard-project.txt

    并且在 proguard-project.txt 中:

    -保持类 net.sourceforge.zbar.** { *; }

    这会解决你的问题..我亲自测试过:)

    【讨论】:

      【解决方案2】:

      尝试将 LOCAL_SRC_FILES 替换为 BUILD_MULTI_PREBUILT。

      【讨论】:

      • Nikita Tiwari,我也试过这个标志,反正我找到了答案
      【解决方案3】:

      我找到了我的问题的答案。添加具有 false 值的 LOCAL_PROGUARD_ENABLED 标志解决了我的问题。 添加这将导致不优化 jar 文件,因此将数据变量保留在 Image 类中。 我希望它对面临类似问题的人有所帮助。 谢谢

      【讨论】:

        猜你喜欢
        • 2013-12-09
        • 1970-01-01
        • 1970-01-01
        • 2016-12-30
        • 1970-01-01
        • 2021-10-15
        • 1970-01-01
        • 2018-01-01
        • 1970-01-01
        相关资源
        最近更新 更多