最近我将Android SDK更新为14.0.0
环境:Ubuntu 10.04,Eclipse Helios.
项目目标是8(Android 2.2)
在我的项目中,我使用maven.然后我尝试构建项目我得到下一个错误: "转换为Dalvik格式失败,错误1"
然后maven说:"无法创建APKBuilder对象null"
但是,如果我创建没有maven的Android项目 - 一切都好.
更新:
清洁项目对我没有帮助
我使用的是Android的Maven的插件3.2.0并运行,以安装并启动设备上的APK(歌Nexus One的Android 2.3.6),它是通过USB和可见的亚洲开发银行连接的唯一一个以下; 也没有并行运行的模拟器.
mvn install android:deploy android:run
Run Code Online (Sandbox Code Playgroud)
下面是我的shell中的输出,看起来很好,我甚至收到一条消息说
已成功安装/Users/myuser/Projects/MyCompany/com.mycompany.abc/target/com.mycompany.abc-1.0-SNAPSHOT.apk至HT9CPP805008_HTC_NexusOne
但事实并非如此,我的设备上没有安装apk,在应用程序下无法找到.我目前能够真正安装apk的唯一方法是通过解决方法,因为android:deploy似乎无法正常工作.(亚行本身工作正常不过,我可以运行任何命令(推,安装等),通过ADB手动和它也发现我的设备没有问题.我在Mac OS X狮子与亚行v1.0.29)
更新:
这里有一个有趣的发现,我只是做了:android:deploy/run工作正常,如果我有应用程序之前就已经安装在我的设备上,然后运行Maven,这则取消部署旧APK先,然后重新部署新的.这有效!但是 - 如果我之前没有在我的设备上安装该应用程序,或者在运行maven之前手动删除该应用程序,它将无法正常工作.更改的值<undeployBeforeDeploy>从true以false不作任何这里既区别.
以前有人遇到过这个问题吗?
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com.mycompany:com.mycompany.abc:apk:1.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.codehaus.mojo:exec-maven-plugin is missing. @ line 85, column 21
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] …Run Code Online (Sandbox Code Playgroud) 我有一个活动,使用MediaPlayer发出哔哔声,工作正常,即使在生产版本中也能正常工作.随着最新发布,它现在突然崩溃了
Caused by: android.content.res.Resources$NotFoundException: File res/raw/beep.ogg from drawable resource ID #0x7f060000
at android.content.res.Resources.openRawResourceFd(Resources.java:994)
at android.media.MediaPlayer.create(MediaPlayer.java:855)
at com.digikey.mobile.activity.CaptureActivity.onCreate(SourceFile:135)
at android.app.Activity.performCreate(Activity.java:5206)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
... 11 more
Caused by: java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
at android.content.res.AssetManager.openNonAssetFdNative(Native Method)
at android.content.res.AssetManager.openNonAssetFd(AssetManager.java:428)
at android.content.res.Resources.openRawResourceFd(Resources.java:991)
... 16 more
Run Code Online (Sandbox Code Playgroud)
我尝试了许多不同的加载和播放声音的方法,包括将它存储在资源中而不是原始的res/raw中,当我在未经过编程的应用程序中使用它们时它们都能正常工作但是它们都在发布版本中失败了proguarded/zipaligned并签名.
我的proguard文件相当大,它确实包含了经常建议的修复程序
-keepclassmembers class **.R$* {public static <fields>;}
-keep class **.R$*
Run Code Online (Sandbox Code Playgroud)
以前有人有任何想法或遇到过这样的事吗?
更新:我也试过mp3文件,它有同样的问题.
更新2:一个有趣的事情是,这条消息似乎需要花费很长时间(接近1秒).好像它正在搜索或处理某些文件或其他东西..但文件非常小,所以它很奇怪.
android assets proguard android-mediaplayer android-maven-plugin
我想在Android开发中切换到maven来构建我的构建过程.我按照http://www.sonatype.com/books/mvnref-book/reference/android-dev-sect-archetype.html创建了pom.xml并稍微调整了版本以便我使用的是最新版本android-maven-plugin.
虽然我的IDE从我的IDE(IntellJ)中手动构建得很好,但是使用maven构建的apk存在问题.显然缺少一些不会将类放入apk的东西.
当我检查两个生成的apk(解压缩它)时,我发现maven生成的apk的classes.dex比常规的(24.9kB)小得多(2.6kB).显然,那里缺少课程.
所以,当启动这个apk时,我收到以下错误:
E/AndroidRuntime(31228): FATAL EXCEPTION: main
E/AndroidRuntime(31228): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mycompany.abc/com.mycompany.abc.ABCActivity}: java.lang.ClassNotFoundException: com.mycompany.abc.ABCActivity in loader dalvik.system.PathClassLoader[/mnt/asec/com.mycompany.abc-1/pkg.apk]
E/AndroidRuntime(31228): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
E/AndroidRuntime(31228): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
E/AndroidRuntime(31228): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
E/AndroidRuntime(31228): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
E/AndroidRuntime(31228): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(31228): at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(31228): at android.app.ActivityThread.main(ActivityThread.java:3683)
E/AndroidRuntime(31228): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(31228): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(31228): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime(31228): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime(31228): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(31228): Caused by: java.lang.ClassNotFoundException: com.mycompany.abc.ABCActivity in loader dalvik.system.PathClassLoader[/mnt/asec/com.mycompany.abc-1/pkg.apk]
E/AndroidRuntime(31228): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
E/AndroidRuntime(31228): at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
E/AndroidRuntime(31228): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
E/AndroidRuntime(31228): …Run Code Online (Sandbox Code Playgroud) 抱歉,仅添加了另一个“未找到android maven google maps依赖项”问题,但我想我已经阅读了有关它的大部分文章,并且未成功应用所有建议的解决方案。
我有一个运行状况良好的Maven Android项目,它与Google Maps V2的依赖关系没有通过maven引用,而是通过在工作区中导入的google-play-services_lib项目和Eclipse构建路径库的依赖关系进行引用。
现在,我正在尝试通过pom配置google-play-services依赖关系,因为我正在使用Robolectric实施maven自动化测试,但是我被pom第一行显示的错误所困扰,没有快速修复:
在工作区中找不到dependency = [com.google.android.gms:google-play-services:apklib:7:compile]
经过大量的谷歌搜索,到目前为止,我尝试过什么,并在每一步之后检查结果均未成功:
最初使用android-maven-sdk-helper将google play服务组件安装到我的本地.m2存储库中(按照这些说明进行操作),并将对jar和apklib版本7的两个依赖项添加到项目pom中,这是我在本地安装的版本(如此处) 。此后它应该可以工作,但是出现依赖性错误。
从eclipse构建路径中删除对库google-play-services_lib的引用(在项目/首选项/ Android /库中)。无论如何,google-play-services_lib项目仍在工作区中。
将apklib从我的本地m2存储库复制到工作区中的某个位置:我尝试了google-play-services_lib / bin,google-play-services_lib / libs,MyProject / libs。使用名称google-play-services-7.apklib(在存储库文件中)和google-play-services.apklib进行测试。
通过运行eclipse配置/转换为Maven项目,“ Mavenise”工作区中包含的google-play-services_lib项目。我编辑了生成的pom以将包装类型更新为apklib:,<packaging>apklib</packaging>并添加了android-maven-plugin <extensions>true</extensions>以识别apklib包装类型。我使用maven目标编译成功地编译了项目,但是在任何地方都找不到生成的apklib文件。
在完成所有这些更改之后,我将执行Maven / Update项目,清理项目,甚至重新启动Eclipse。没有成功:在空间错误中找不到的依赖项仍然存在。
我不知道还能尝试什么。可以使用库名吗?库项目名称为google.play-services_lib,后缀_lib,在eclipse android库构建路径中引用的jar为_lib.jar,但Maven工件没有_lib后缀。我还尝试过对组件和工件进行一些重命名,但均未成功,但我想问题可能在那里。有人可以为mavenised google-play-services_lib项目发布示例pom.xml吗?
另一个猜测:当我mvn编译mavenised库项目时,为什么找不到生成的.apklib文件,它在哪里?我用mvn -X compile检查了跟踪,没有找到任何提示。
环境和版本:
Eclipse Indigo
External maven 3.0.5 (embedded Maven 3.0.3 not used)
android-maven-plugin 3.6.0
maven-eclipse-plugin 2.8
m2e-android plugin (m2eclipse android integration) 0.4.2
Android API level 13
Run Code Online (Sandbox Code Playgroud)
我添加到google-play-services_lib项目的pom.xml:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>google-play-services_lib</groupId>
<artifactId>google-play-services_lib</artifactId>
<version>7</version> …Run Code Online (Sandbox Code Playgroud) eclipse android google-maps-android-api-2 android-maven-plugin
我试着做一个maven android proyect.
我在style.xml中有这个
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"></style>
Run Code Online (Sandbox Code Playgroud)
而这个错误
error: Error retrieving parent for item: No resource found that matches the given name
'Theme.AppCompat.Light.DarkActionBar'.
Run Code Online (Sandbox Code Playgroud)
我在pom.xml中有这个
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Plugins -->
<android-maven-plugin.version>3.8.2</android-maven-plugin.version>
<maven-compiler-plugin.version>2.3.2</maven-compiler-plugin.version>
<api.platform>16</api.platform>
<eclipse-lifecycle-plugin.version>1.0.0</eclipse-lifecycle-plugin.version>
<!-- Compilation dependencies, build.gradle -->
<android-sdk.version>18</android-sdk.version>
<android-buildtools.version>18.1.1</android-buildtools.version>
<android-support.version>r7</android-support.version>
<!-- Dependencies -->
<androidannotations.version>3.0.1</androidannotations.version>
<android.version>4.4.2_r2</android.version>
<support-v4.version>r7</support-v4.version>
<spring-android-rest-template.version>1.0.1.RELEASE</spring-android-rest-template.version>
</properties>
<dependencies>
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<scope>provided</scope>
<version>${android.version}</version>
</dependency>
<dependency>
<groupId>android.support</groupId>
<artifactId>compatibility-v4</artifactId>
<version>19.0.1</version>
</dependency>
<dependency>
<groupId>android.support</groupId>
<artifactId>compatibility-v13</artifactId>
<version>19.0.1</version>
</dependency>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>support-v4</artifactId>
<version>19.0.1</version>
</dependency>
<dependency>
<groupId>android.support</groupId>
<artifactId>compatibility-v7</artifactId>
<version>19.0.1</version>
<type>apklib</type>
</dependency>
<dependency>
<groupId>android.support</groupId>
<artifactId>compatibility-v7-appcompat</artifactId> …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的项目中配置库v7支持,以便它使用ActionBarActivity,从而保持与某些Android 2.X版本的兼容性.
首先,按照从谷歌文档和导入项目android-support-v7-appcompat,如按照第一个库添加具有资源库的支持库设置.但是这样我的Maven Build失败了,因为它找不到相关库的依赖性.
现在,我决定寻求一个更清洁的解决方案,让我的依赖由Maven管理.为此,请按照答案的说明进行操作,但使用的是版本19.0.1.这使我的Maven Build成功执行,但我的项目没有在我的工作区编译,在我的POM的第一行发生以下错误:
dependency=[com.android.support:appcompat-v7:apklib:19.0.1:compile]not found in workspace
Run Code Online (Sandbox Code Playgroud)
我的依赖关系如下:
<dependency>
<groupId>com.android.support</groupId>
<artifactId>appcompat-v7</artifactId>
<version>${com.android.support-version}</version>
<type>apklib</type>
</dependency>
<dependency>
<groupId>com.android.support</groupId>
<artifactId>appcompat-v7</artifactId>
<version>${com.android.support-version}</version>
<type>jar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
有问题的项目在GitHub上,如果他们想查看它:https://github.com/veniltonjr/msplearning
先感谢您!
注意:我使用的是Maven 3.2.2,Eclipse Luna
这是我使用Android AAR存档的pom.xml中的依赖项
<dependency>
<groupId>com.github.gabrielemariotti.cards</groupId>
<artifactId>library</artifactId>
<version>1.7.3</version>
<type>aar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我可以在target/classes文件夹中看到安装的类.
但是当我尝试使用AAR中的类时,Eclipse显示的类无法解析.我在pom.xml中使用由JAR依赖项添加的类没有问题
任何帮助将不胜感激.
使用Maven Android插件的最新版本4.0.0-rc.1,构建中似乎缺少一些类.当我启动应用程序时,我得到了一个例外(启动应用程序的两种可能方式):
两个缺少的类都在support-v4-21.0.0.aar/libs/internal_impl-21.0.0.jar中.
我的依赖定义:
<dependency>
<groupId>com.android.support</groupId>
<artifactId>support-v4</artifactId>
<version>21.0.0</version>
<type>aar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这是一些配置错误吗?Android Maven插件中的一个错误?
我遇到了以下问题:我实现的应用程序包含另一个项目作为依赖项(类型为aar).两个项目共享同一个父pom.依赖项包括应用程序正在使用的资源.要访问库项目中的资源,可以通过调用获取资源ID context.getResources().getIdentifier(resourceKey, resourceType, packageName).我通过调用getPackageName() 给定的context对象获取包名称.在使用之前更改项目的包名称之前
<renameManifestPackage>com.example.newpackagename</renameManifestPackage>
Run Code Online (Sandbox Code Playgroud)
访问图书馆资源工作正常.但是在重命名应用程序的包名后我得到了一个,android.content.res.Resources$NotFoundException因为getIdentifier()调用仍然期望应用程序的旧包名称并且调用getPackageName()返回新的(正如预期的那样).
现在我想知道我是否遗漏了某些东西,或者这是android maven插件中的错误?https://github.com/simpligility/android-maven-plugin