the*_*man 8 android android-gradle-plugin
在Android应用中,我需要为特定外设使用特定的SDK.
使用单个构建变体,一切正常:
provided fileTree(include: ['peripheral.jar'], dir: 'libs')
compile fileTree(exclude: ['peripheral.jar'], dir: 'libs')
Run Code Online (Sandbox Code Playgroud)
问题是SDK依赖于安装在实际外设中的共享库.如果我尝试在任何其他Android设备上安装该应用程序(为了调试其他功能),我会收到INSTALL_FAILED_MISSING_SHARED_LIBRARY错误消息.
我想我可以使用两种构建变体:
release,使用SDKdebug,那不使用SDK我已经尝试仅在release构建类型中包含SDK :
releaseProvided fileTree(include: ['peripheral.jar'], dir: 'libs')
releaseCompile fileTree(exclude: ['peripheral.jar'], dir: 'libs')
Run Code Online (Sandbox Code Playgroud)
但是,由于缺少导入,我无法编译项目.
所以我复制了唯一使用这些导入的类:
在main/java/package/PeripheralManager.java:
public class ScannerManager {
// fake
}
Run Code Online (Sandbox Code Playgroud)
在release/java/package/PeripheralManager.java:
import peripheral; <- IT FAILS WHEN COMPILING
public class ScannerManager {
// real code
}
Run Code Online (Sandbox Code Playgroud)
无论我选择的构建类型如何,如果导入未在其中一个变体中解决,我无法编译项目...
最后我用口味解决了这个问题。问题是试图在main和release文件夹中复制相同的类。我们不能那样做。相反,我必须将其复制到例如debugand 、release或flavour1and flavour2, (一个包含导入,另一个不包含导入)并将其从 中删除main。然后,我可以选择要编译的内容,一切正常。
不管怎样,谢谢你的帮助,+MohanRaj!
| 归档时间: |
|
| 查看次数: |
527 次 |
| 最近记录: |