Cordova编译异常小结
来源:互联网 发布:ieee 802.11 mac协议 编辑:程序博客网 时间:2024/06/05 08:22
- java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
完整的异常stack
* What went wrong:Execution failed for task ':preDexDebug'.> com.android.ide.common.internal.LoggedErrorException: Failed to run command: <ANDROID_HOME>/build-tools/24.0.0/dx --dex --output /home/xiaofanku/marsspace/iqido_app/platforms/android/build/intermediates/pre-dexed/debug/classes-b09293f2934475cc245ffcab36ea10739c783336.jar /home/xiaofanku/marsspace/iqido_app/platforms/android/build/intermediates/exploded-aar/android/CordovaLib/unspecified/debug/classes.jar Error Code: 1 Output: Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
注意从以下标题中查找原因
**
A:Android target
**
问题1:为什么是android-23?
cordova-android版本决定了所支持Android SDK版本列表
cordova-android—>Version Supported Android API-Levels
5.X.X—>14 - 23
4.1.X—>14 - 22
4.0.X—>10 - 22
3.7.X—>10 - 21
cordova-android版本支持的Android SDK上限即为cordova项目的Android target版本号,例如:cordova-android版本为5.xx,哪么当前cordova项目的Android target就为23
问题2:查看cordova-android当前的版本?
cordova platform ls
问题3:更改cordova-android当前的版本?
更新到最新版本
cordova platform update android
更新到指定的版本
cordova platform update android@<4.0.2>
**
B:Android SDK Manager
**
**
C:项目中的相关版本文件
**
如果在开发工具中可能通过查看以下文件中的片段
cordova-android版本号在
<项目名>/platforms/platforms.json
{ "android": "4.0.2"}
我的cordova版本是
android target版本号在
<项目名>/platforms/android/project.properties
# This file is automatically generated by Android Tools.# Do not modify this file -- YOUR CHANGES WILL BE ERASED!## This file must be checked in Version Control Systems.## To customize properties used by the Ant build system edit# "ant.properties", and override values to adapt the script to your# project structure.## To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt# Project target.target=android-22android.library.reference.1=CordovaLib
<项目名>/platforms/android/AndroidManifest.xml
<?xml version='1.0' encoding='utf-8'?><manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="iqido.app" xmlns:android="http://schemas.android.com/apk/res/android"> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true"> </application> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="22" /></manifest>
以上两个文件名在<项目名>/platforms/android/CordovaLib/下也存在该名称的文件,此目录下文件名虽一样,但内容不一样,cordova build时以哪个为主呢?最好还是使用上面的update命令
我试过不用update命令,只改这4个文件中的android target也可以成功编译apk
总结:
Android SDK Build-tools 的版本号大于Android target
附注另一个异常
* What went wrong:Execution failed for task ':CordovaLib:processDebugResources'.> java.io.IOException: Cannot run program "<ANDROID_HOME>/build-tools/22.0.1/aapt": error=2, 没有那个文件或目录
我用的是64位ubuntu 14.04,参考此文可以kill掉此异常:Cannot run program “XXXXX/android-sdks/build-tools/aapt.exe”: error=2, 没有那个文件或目录
- Cordova编译异常小结
- Cordova小结
- android studio gradle编译异常小结
- cordova编译无反应
- 异常小结
- 异常小结
- 异常小结
- 异常小结
- 异常小结
- 异常小结
- 异常小结
- 异常小结
- 异常小结
- 异常小结
- 异常小结
- Cordova:插件测试小结-cordova-plugin-test-framework
- [Phonegap+Sencha Touch] 移动开发15 phonegap/cordova 3.4.0 编译异常:a is not defined 解决办法
- Cordova项目的编译常用命令
- 设计模式-Prototype模式
- oracle 参数化算多少天之前的日期
- git使用简明教程
- 让TextView实现走马灯效果并避免因EditText和 AlerterDialog抢走了焦点而停止
- Hibernate内置标识符生成器
- Cordova编译异常小结
- webRTC在Win7 VS2015下的编译和生成
- 问题 K: 数据结构(C语言版)算法7.4至算法7.6__DFS与BFS //这题做法不正规
- 加密锁的使用技巧
- Hough变换——直线检测(投票方法实现)
- detect the encoding of files in Python
- 如何在Spring 的官网上下载 Spring Framework 和 Spring Tool Suite
- [Python Scrapy] Windows下BeautifulSoup安装
- 比赛2016年暑假集训盲打首秀赛结果