最近我开始对我的Android应用程序进行整理.我的方法之一是以下障碍:在构建过程中,maven插件无法找到res目录中布局中使用的drawable.我首先使用android快速启动原型进行了mavenizing:
mvn archetype:generate -DarchetypeArtifactId = android-quickstart -DarchetypeGroupId = de.akquinet.android.archetypes -DarchetypeVersion = 1.0.8
然后我将所有资源复制到archetype生成的res目录.恕我直言这应该足够了.但这是我在mvn clean install之后得到的:
[信息] --- Android的Maven的插件:3.4.0:APK(默认APK)@ missnanny-Android平台的应用程序--- [INFO]复制本地资产文件合并资产目录.[INFO] D:\ Environments\AndroidSDK\android-sdk\platform-tools\aapt.exe [package,-f,-M,D:\ Programming\myproj.com\myproj\myproj-android-app\MyprojManifest.xml ,-S,D:\ Programming\myproj.com\myproj\myproj-android-app\res, - auto-add-overlay,-A,D:\ Programming\myproj.com\myproj\myproj-android-app\target\generated-sources\combined-assets\assets,-I,D:\ Environments\AndroidSDK\android-sdk\platforms\android-7\android.jar,-F,D:\ Programming\myproj.com\myproj \的Myproj-机器人应用内\目标\的Myproj-机器人-APP-0.0.1-SNAPSHOT.ap_]
[INFO] D:\ Programming\myproj.com\myproj\myproj-android-app\res\layout\layout_1.xml:8:错误:错误:找不到与给定名称匹配的资源(在'src'处有值' @可绘制/图像").
我收到很多这样的错误.所有人都说没有资源可以找到某些layout.xml文件.我在上面的日志中更改了项目和资源的名称.真实姓名与myproj不同.但那应该不重要.在mavenizing期间,我只将资源复制到由archetype生成的res目录中.在res文件夹中我:
RES /抽拉RES /抽拉-HDPI RES /抽拉-MDPI RES /抽拉-LDPI RES /布局RES /原始RES /值RES /值-PL
我想提一下,在AndroidManifest.xml中为应用程序图标加载drawable是没有问题的.所有问题都与drawable.xml中的布局和选择器有关
我的pom:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>pl.comapny.groupid</groupId>
<artifactId>projectid</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>appname-android-app</artifactId>
<packaging>apk</packaging>
<name>appname-android-app</name>
<properties>
<platform.version> 2.1.2 </platform.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${platform.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>pl.company.groupid</groupId>
<artifactId>artifact</artifactId> …
Run Code Online (Sandbox Code Playgroud) 我知道,这个问题曾被maaany问过,但我认为没有解决方案.我正在开发应用程序,应该针对所有设备与Android系统和背面摄像头.问题是我只能在两台设备上测试应用程序,并且必须确保它适用于所有设备.我认为只有合理的解决方案才能找到相机api的代码示例,这些代码样本可以保证几乎适用于所有设备.有没有人可以提供这样的来源......但是来源......真的是在maaaaany(ALL)设备上测试过的吗?我已经失去了头脑中的所有头发......而且......我想我已经失去了理智......这都是因为我发布了应用程序(仅适用于我公司的测试),仅在两个测试中测试过设备,并以一种应该工作的方式使用相机api,但它似乎有一些手机,如HTC欲望HD或HTC Evo 3D(与3D相机),其中应用程序只是崩溃(因为相机)或冻结(也因为相机).如果有人拥有相机api的来源(拍摄没有用户gui互动的照片,定期),这些都经过了真正的测试,请非常友好,如果可以,请发布消息来源或将我重定向到正确的位置.
嗯,也许这个问题应该是这样的:"技术上是否可以在所有设备上使用相机api?"
也许我会描述我目前如何使用api.
1)初始化凸轮:
public void initCam()
{
LoggingFacility.debug("Attempting to initialize camera",this);
LoggingFacility.debug("Preview is enabled:"+isPreview,this);
try {
if (camera==null)
{
camera = Camera.open();
camera.setPreviewDisplay(mHolder);
if (camera!=null)
{
Camera.Parameters parameters = camera.getParameters();
List<Size> sizes = parameters.getSupportedPictureSizes();
if (sizes!=null)
{
Size min = sizes.get(0);
for (Size size : sizes)
if (size.width<min.width) min = size;
{
parameters.setPictureSize(min.width, min.height);
}
}
camera.setParameters(parameters);
setDisplayOrientation(90);
}
}
startPreview(aps);
} catch (Throwable e){
if (exceptionsCallback!=null)
exceptionsCallback.onException(e);
}
}
Run Code Online (Sandbox Code Playgroud)
2)开始预览:
private void …
Run Code Online (Sandbox Code Playgroud)