【问题标题】:Build with moverio BT-2000 library使用 moverio BT-2000 库构建
【发布时间】:2016-08-31 22:30:01
【问题描述】:

我正在尝试为 EPSON Moverio BT-2000 开发应用程序。

我是 android studio 的新手,我不明白为什么我不能使用我已经导入的库中的某些方法(我猜对了)。

所以,我已将我的库添加到名为 libs 的文件夹中,右键单击它,添加为库。

我签入了 builds.gradle

   dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile files('libs/H725Ctrl.jar') // this lib
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:21.0.3'

    }

此外,我可以使用一些元素(方法、字符串定义等),但有些不能。我不明白为什么以及如何可能。

如果有必要,我可以发布我的源代码。

你有什么想法吗?

谢谢。

弗兰克

注意:我使用的 lib 已被 android 折旧

NB2:示例

        Camera.Parameters params = l_pCamera.getParameters(); 
// I can do this and getParameters() works
        List<String> Supported = params.getSupportedEpsonCameraModes(); 
//I can't invoke getSupportedEpsonCameraModes() or methods are in the same file

【问题讨论】:

    标签: android android-studio jar epson


    【解决方案1】:

    我联系了 EPSON,他们说这是一个常见问题。 所以他们给我发了一份 pdf 文件,说明如何解决问题..

    这很奇怪..

    注意 PDF 的内容:对于演示文稿感到抱歉,但它会对某人有所帮助..

    1/2
    Remark for using Android Studio
    In case of using BT-2000 SDK with Android Studio, there may happen to have a failure during a build process. It may cause the conflict of the name between standard SDK and Epson expanded SDK. It is happened especially with “android.hardware.Camera” class.
    It may resolve a failure with following action.
    1. Sore H725Ctrl.jar at designated folder which is created by user like C:\Users\<user name\AndroidStudioProjects\<application name>\app\libs
    2. Set change of gradle by selecting “Sync Project with Gradle Files” button which is located upper of Android Studio screen.
    3. Open “build.gradle” for specified project with specified application name by selecting left side button on Android Studio screen. Then edit with following contents.
    allprojects { repositories { jcenter() } gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs.add('-Xbootclasspath/p:C:/Users/<user name>/AndroidStudioProjects/<application name>/app/libs/H725Ctrl.jar') } } }
    4. Execute “Clean Project” then “Make Project” in Android Studio Build menu.
    5. If error occurs in Make project process, end Android Studio and restart it.
    2/2
    6. There may still remain several name conflicts with Android standard API like “getSupportedEpsonCameraModes()”. Ignore and “run application” to set it into target BT-2000.
    [ Caution ]
    It works temporally with following action;
    Open
    C:\Users\<user name>\AndroidStudioProjects\<application name>\app\app.iml
    Move line of
    <orderEntry type="library" exported="" name="H725Ctrl" level="project" />
    to upper line of
    <orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
    This will help H725Ctrl.jar to be higher priority, however performing rebuild function will affect to reset name conflict issue.
    Object which is performed build function already works well.
    

    【讨论】:

      【解决方案2】:

      这很奇怪。 Epson 尝试覆盖其 jar 中的一些 Android 特定类:

      android.hardware.Camera 
      android.hardware.Camera.Parameters
      

      这些类是 Android SDK (http://developer.android.com/reference/android/hardware/Camera.html) 的一部分。我不知道爱普生想要实现,如果他们将这些类与他们的 SDK 捆绑在一起。也许您可以将 H725Ctrl.jar 中的包名更改为类似

      com.epson.hardware
      

      使用 JarJar (https://github.com/shevek/jarjar)?

      【讨论】:

      • 谢谢,但我不熟悉 Jarjar。改个包名真的能解决问题..?
      • 我不知道。这可能是一个解决方案。我从来没有用过这个sdk。也许你应该联系爱普生支持。
      • 我不明白如何使用 JarJar.. 你有什么快速的建议..,?
      • @Franck_Cordu 你有没有遇到这个问题?开始与 Moverio 合作并尝试收集尽可能多的信息.​​.....
      • 不知道EPSON有没有解决这个问题。我现在不在 Moverio 上工作。但是如果你想使用 EPSON 库,你必须修改 gradle 文件中的一些内容。如果你愿意,我可以给你发一份 EPSON 的 pdf。
      【解决方案3】:

      将以下代码添加到您的 build.gradle 文件中。问题可能是 Moverio Camera 类使用与 Android sdk 相同的命名空间,并且存在排序问题

         allprojects {
              repositories {
                  jcenter()
              }
      
          gradle.projectsEvaluated {
          tasks.withType(JavaCompile) {
              options.compilerArgs.add('-Xbootclasspath/p:C:/Source/EPSONProBT-2000ServiceMaintenance/app/libs/H725Ctrl.jar')
          }
      }
      

      }

      【讨论】:

        猜你喜欢
        • 2017-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-13
        • 2017-05-04
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        相关资源
        最近更新 更多