2016-02-15 3 views
0

Я пытаюсь разработать приложения для EPSON Moverio BT-2000.Построение с помощью библиотеки moverio BT-2000

Я новичок в студии android, и я не понимаю, почему я не могу использовать некоторые методы из библиотеки, которую я импортировал (правильно, я предположил).

Итак, у меня есть моя библиотека в папке с именами 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' 

    } 

Кроме того, я могу использовать некоторые элементы (методы, Струнные определения и т.д ..), но некоторые нет. Я не понимаю, почему и как это возможно.

Если необходимо, я могу опубликовать исходный код.

У вас есть идеи.?

Спасибо.

Franck

NB: Либерал я использую обесценился андроида

NB2: Exemple

 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 

ответ

0

Это странно. Epson пытается переопределить некоторые Android конкретных классов в их банке:

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

Эти классы являются частью Android SDK (http://developer.android.com/reference/android/hardware/Camera.html). Я не знаю, что Epson хотела бы достичь, если они объединяют классы со своим SDK. Может быть, вы могли бы изменить имяпакет в H725Ctrl.jar к чему-то вроде

com.epson.hardware 

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

+0

Спасибо, но я не знаком с Jarjar. Изменение имени пакета может действительно решить проблему ..? –

+0

Не знаю. Это может быть решение. Я никогда не использовал этот sdk. Возможно, вам стоит обратиться в службу поддержки Epson. – Christopher

+0

Я не понимаю, как использовать JarJar. У вас есть быстрые советы ..,? –

1

Я связался с EPSON, и они сказали, что это обычная проблема. Так они посылают мне PDF, которые указывают, как решить проблему ..

Это странно ..

NB содержание 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. 
0

Добавьте следующий код в файл build.gradle. Проблема может быть, что класс Camera Moverio использует то же пространство имен как Android SDK и есть проблема упорядочения

allprojects { 
     repositories { 
      jcenter() 
     } 

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

}

Смежные вопросы