Git Product home page Git Product logo

dynamicapk's People

Contributors

hrchen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dynamicapk's Issues

如何新增插件?

1、项目中的demo1、demo2是以什么形式引入的,as中看不是lib也不是gradle项目;
2、如果需要新增一个插件,要对插件项目做哪些修改?apk_module_config.xml中要新增一个资源配置吧,caapt里的代码是自动打包用的么,需要做修改嘛?如何单独将插件工程打包成.so文件呢?直接将so文件放入assets/baseres/目录下再运行simple工程较为方便,也可以进行宿主工程调试操作。
3、插件中不支持引入jar包么,如果插件工程采用的ioc框架,会不会无法加载?

热修复补丁如何生成

HotPatchManager.getInstance().installHotPatch();
补丁文件如何生成和怎么使用,demo和文章都没有提及

Execution failed for task ':demo1:aaptRelease'.

find packageName: ctrip.android.demo1 ,resourceId:0x31
find packageName: ctrip.android.demo2 ,resourceId:0x36
:bundle:compileLint
:bundle:copyReleaseLint UP-TO-DATE
:bundle:mergeReleaseProguardFiles UP-TO-DATE
:bundle:preBuild UP-TO-DATE
:bundle:preReleaseBuild UP-TO-DATE
:bundle:checkReleaseManifest
:bundle:prepareReleaseDependencies
:bundle:compileReleaseAidl UP-TO-DATE
:bundle:compileReleaseRenderscript UP-TO-DATE
:bundle:generateReleaseBuildConfig UP-TO-DATE
:bundle:generateReleaseAssets UP-TO-DATE
:bundle:mergeReleaseAssets UP-TO-DATE
:bundle:generateReleaseResValues UP-TO-DATE
:bundle:generateReleaseResources UP-TO-DATE
:bundle:packageReleaseResources UP-TO-DATE
:bundle:processReleaseManifest UP-TO-DATE
:bundle:processReleaseResources UP-TO-DATE
:bundle:generateReleaseSources UP-TO-DATE
:bundle:processReleaseJavaRes UP-TO-DATE
:bundle:compileReleaseJavaWithJavac UP-TO-DATE
:bundle:packageReleaseJar
:bundle:compileReleaseNdk UP-TO-DATE
:bundle:packageReleaseJniLibs UP-TO-DATE
:bundle:packageReleaseLocalJar UP-TO-DATE
:bundle:packageReleaseRenderscript UP-TO-DATE
:bundle:bundleRelease
:bundle:compileReleaseSources UP-TO-DATE
:bundle:assembleRelease
:sample:preBuild UP-TO-DATE
:sample:preReleaseBuild UP-TO-DATE
:sample:checkReleaseManifest
:sample:preDebugBuild UP-TO-DATE
:sample:prepareDynamicAPKBundle10Library
:sample:prepareReleaseDependencies
:sample:compileReleaseAidl UP-TO-DATE
:sample:compileReleaseRenderscript UP-TO-DATE
:sample:generateReleaseBuildConfig UP-TO-DATE
:sample:generateReleaseAssets UP-TO-DATE
:sample:mergeReleaseAssets UP-TO-DATE
:sample:generateReleaseResValues UP-TO-DATE
:sample:generateReleaseResources UP-TO-DATE
:sample:mergeReleaseResources UP-TO-DATE
:sample:processReleaseManifest UP-TO-DATE
:sample:processReleaseResources
:sample:generateReleaseSources
:sample:processReleaseJavaRes UP-TO-DATE
:sample:compileReleaseJavaWithJavac
注: /Users/jayronlou/Desktop/e租宝/DynamicAPK/sample/src/ctrip/android/sample/BundleBaseApplication.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
:sample:compileReleaseNdk UP-TO-DATE
:sample:compileReleaseSources
:sample:lintVitalRelease
:sample:dexRelease
:sample:validateDemoSigning
:sample:packageRelease
:sample:zipalignRelease
:sample:assembleRelease
:demo1:init
:demo1:aaptRelease
(skipping file '.gitignore' due to ANDROID_AAPT_IGNORE pattern '.*')
W/asset (80456): Asset path /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/tools:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/platform-tools:/Users/jayronlou/Desktop/Android/开发环境/gradle-2.7/bin:/Users/jayronlou/Desktop/Android/开发环境/gradle-2.7/lib:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/build-tools/23.0.1:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/ndk-bundle:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/platforms/android-23/android.jar is neither a directory nor file (type=1).
ERROR: Asset package include '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/tools:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/platform-tools:/Users/jayronlou/Desktop/Android/开发环境/gra dle-2.7/bin:/Users/jayronlou/Desktop/Android/开发环境/gradle-2.7/lib:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/build-tools/23.0.1:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/ndk-bundle:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/platforms/android-23/android.jar' not found.
Found 0 custom asset files in /Users/jayronlou/Desktop/e租宝/DynamicAPK/demo1/assets
Configurations:
(default)
hdpi-v4
w820dp-v13

Files:
drawable/demo1.png
Src: (hdpi-v4) /Users/jayronlou/Desktop/e租宝/DynamicAPK/demo1/res/drawable-hdpi/demo1.png
layout/demo1_activity_main.xml
Src: () /Users/jayronlou/Desktop/e租宝/DynamicAPK/demo1/res/layout/demo1_activity_main.xml
values/dimens.xml
Src: () /Users/jayronlou/Desktop/e租宝/DynamicAPK/demo1/res/values/dimens.xml
Src: (w820dp-v13) /Users/jayronlou/Desktop/e租宝/DynamicAPK/demo1/res/values-w820dp/dimens.xml
values/strings.xml
Src: () /Users/jayronlou/Desktop/e租宝/DynamicAPK/demo1/res/values/strings.xml
AndroidManifest.xml
Src: () /Users/jayronlou/Desktop/e租宝/DynamicAPK/demo1/AndroidManifest.xml

Resource Dirs:
Type drawable
drawable/demo1.png
Src: (hdpi-v4) /Users/jayronlou/Desktop/e租宝/DynamicAPK/demo1/res/drawable-hdpi/demo1.png
Type layout
layout/demo1_activity_main.xml
Src: () /Users/jayronlou/Desktop/e租宝/DynamicAPK/demo1/res/layout/demo1_activity_main.xml
Type values
values/dimens.xml
Src: () /Users/jayronlou/Desktop/e租宝/DynamicAPK/demo1/res/values/dimens.xml
Src: (w820dp-v13) /Users/jayronlou/Desktop/e租宝/DynamicAPK/demo1/res/values-w820dp/dimens.xml
values/strings.xml
Src: () /Users/jayronlou/Desktop/e租宝/DynamicAPK/demo1/res/values/strings.xml
Including resources from package: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/tools:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/platform-tools:/Users/jayronlou/Desktop/Android/开发环境/gradle-2.7/bin:/Users/jayronlou/Desktop/Android/开发环境/gradle-2.7/lib:/Use rs/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/build-tools/23.0.1:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/ndk-bundle:/Users/jayronlou/Desktop/Android/开发环境/android-sdk-macosx/platforms /android-23/android.jar
:demo1:aaptRelease FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':demo1:aaptRelease'.

    Process 'command '/Users/jayronlou/Desktop/e租宝/DynamicAPK/aapt_mac'' finished with non-zero exit value 1

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 12.966 secs

[Error] Sample error as below

------------------------------------
Ctrip Bundle on Nexus 5|armeabi-v7astarting...
------------------------------------
java.io.FileNotFoundException: /data/data/ctrip.android.sample/files/storage/meta: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:456)
at java.io.FileOutputStream.(FileOutputStream.java:87)
at java.io.FileOutputStream.(FileOutputStream.java:72)
at ctrip.android.bundle.framework.Framework.storeMetadata(Framework.java:159)

似乎有个拼写错误`nitification`

DroidPlugin from Qihu360

Very interesting framework! DroidPlugin can start totally independent app (not installed) in your app. The features are more suitable for Qihu360 security app because the bundle apk is totally irrelevant to host apk.

Doesn't support custom nitification.

nitification?->notification?

gradle assembleRelease bundleRelease repackAll

貌似是这句的JAVA_HOME为null:executable "${System.env.'JAVA_HOME'}/bin/jarsigner",如何解决呢?

find packageName: ctrip.android.demo1 ,resourceId:0x31
find packageName: ctrip.android.demo2 ,resourceId:0x36
:bundle:compileLint
:bundle:copyReleaseLint UP-TO-DATE
:bundle:mergeReleaseProguardFiles UP-TO-DATE
:bundle:preBuild UP-TO-DATE
:bundle:preReleaseBuild UP-TO-DATE
:bundle:checkReleaseManifest
:bundle:prepareReleaseDependencies
:bundle:compileReleaseAidl UP-TO-DATE
:bundle:compileReleaseRenderscript UP-TO-DATE
:bundle:generateReleaseBuildConfig UP-TO-DATE
:bundle:generateReleaseAssets UP-TO-DATE
:bundle:mergeReleaseAssets UP-TO-DATE
:bundle:generateReleaseResValues UP-TO-DATE
:bundle:generateReleaseResources UP-TO-DATE
:bundle:packageReleaseResources UP-TO-DATE
:bundle:processReleaseManifest UP-TO-DATE
:bundle:processReleaseResources UP-TO-DATE
:bundle:generateReleaseSources UP-TO-DATE
:bundle:processReleaseJavaRes UP-TO-DATE
:bundle:compileReleaseJavaWithJavac UP-TO-DATE
:bundle:packageReleaseJar UP-TO-DATE
:bundle:compileReleaseNdk UP-TO-DATE
:bundle:packageReleaseJniLibs UP-TO-DATE
:bundle:packageReleaseLocalJar UP-TO-DATE
:bundle:packageReleaseRenderscript UP-TO-DATE
:bundle:bundleRelease UP-TO-DATE
:bundle:compileReleaseSources UP-TO-DATE
:bundle:assembleRelease UP-TO-DATE
:sample:preBuild UP-TO-DATE
:sample:preReleaseBuild UP-TO-DATE
:sample:checkReleaseManifest
:sample:preDebugBuild UP-TO-DATE
:sample:prepareDynamicAPKBundle10Library UP-TO-DATE
:sample:prepareReleaseDependencies
:sample:compileReleaseAidl UP-TO-DATE
:sample:compileReleaseRenderscript UP-TO-DATE
:sample:generateReleaseBuildConfig UP-TO-DATE
:sample:generateReleaseAssets UP-TO-DATE
:sample:mergeReleaseAssets UP-TO-DATE
:sample:generateReleaseResValues UP-TO-DATE
:sample:generateReleaseResources UP-TO-DATE
:sample:mergeReleaseResources UP-TO-DATE
:sample:processReleaseManifest UP-TO-DATE
:sample:processReleaseResources UP-TO-DATE
:sample:generateReleaseSources UP-TO-DATE
:sample:processReleaseJavaRes UP-TO-DATE
:sample:compileReleaseJavaWithJavac UP-TO-DATE
:sample:compileReleaseNdk UP-TO-DATE
:sample:compileReleaseSources UP-TO-DATE
:sample:lintVitalRelease
:sample:dexRelease UP-TO-DATE
:sample:validateDemoSigning
:sample:packageRelease UP-TO-DATE
:sample:zipalignRelease UP-TO-DATE
:sample:assembleRelease
:demo1:init
:demo1:aaptRelease UP-TO-DATE
:demo1:compileRelease UP-TO-DATE
:demo1:dexRelease UP-TO-DATE
:demo1:bundleRelease UP-TO-DATE
:demo2:init
:demo2:aaptRelease UP-TO-DATE
:demo2:compileRelease UP-TO-DATE
:demo2:dexRelease UP-TO-DATE
:demo2:bundleRelease UP-TO-DATE
:sample:concatMappings UP-TO-DATE
:sample:reload UP-TO-DATE
:sample:repack UP-TO-DATE
:sample:resign FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':sample:resign'.

    A problem occurred starting process 'command 'null/bin/jarsigner''

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 4.709 secs

Hot Fix补丁如何生成,生成的文件名规则是什么样的,以及放到哪个目录下运行?

看到说能够支持host fix,但看了源码,对host fix的使用还是很云里雾里的....
关于如何生成,生成后的文件名规则是什么样的,以及放到手机的哪个目录能够运行生效。
看到都没人题,难道就我一个人有这样的疑问??

在源码里面找到了一些有关的代码,但要反推出hot fix的使用还是很难。
/**

  • Created by yb.wang on 15/7/30.
    */
    public class HotPatchItem {
    private static final Logger log;
    private static final String HOTPATCH_FILE_NAME="hotfix.zip";

谢谢....

Error:Could not find com.android.tools.build:gradle:1.3.1.

If don't open jcenter()

Error:Could not find com.android.tools.build:gradle:1.3.1.
Searched in the following locations:
file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/android/tools/build/gradle/1.3.1/gradle-1.3.1.pom
file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/android/tools/build/gradle/1.3.1/gradle-1.3.1.jar
http://mirrors.ibiblio.org/maven2/com/android/tools/build/gradle/1.3.1/gradle-1.3.1.pom
http://mirrors.ibiblio.org/maven2/com/android/tools/build/gradle/1.3.1/gradle-1.3.1.jar
Required by:
:DynamicAPK:unspecified

aapt的源代码貌似不完整

  1. 下载谷歌 最新 的开源代码后,使用caapt里面的文件 替换谷歌/frameworks/base/tools/aapt 。
    make aapt 出现了一堆错误 ,这些错误貌似都是c++版本不同的原因。按照要求改就行了
  2. 重新执行make aapt 编译成功。
  3. 替换工程里面的aapt_mac。
  4. 执行指令 gradle assembleRelease bundleRelease repackAll
    报错信息
    error: Error: No resource found that matches the given name

本人编译的是谷歌最新的aapt源码 只是将/frameworks/base/tools/aapt下的文件替换成的caapt下的文件

这个原因搞了快2周了 还是搞不定 有没有携程的员工出来指点一下。

InstrumentationHook中的execStartActivityInternal

private ActivityResult execStartActivityInternal(Context context, Intent intent, ExecStartActivityCallback execStartActivityCallback) {
        String packageName;
        if (intent.getComponent() != null) {
            packageName = intent.getComponent().getPackageName();
        } else {
            ResolveInfo resolveActivity = context.getPackageManager().resolveActivity(intent, 0);
            if (resolveActivity == null || resolveActivity.activityInfo == null) {
                packageName = null;
            } else {
                packageName = resolveActivity.activityInfo.packageName;
            }
        }
        if (!StringUtil.equals(context.getPackageName(), packageName)) {
            return execStartActivityCallback.execStartActivity();
        }

        return execStartActivityCallback.execStartActivity();
    }

这个方法可以去掉吧,根据最后的if,不管packageName是啥,最终都是调用了execStartActivityCallback.execStartActivity

是的:有一些日志需要去判断包名,所以增加一些条件判断。-----可以去掉这些判断。

atlas

我是手淘Atlas的早期作者之一,看到这些熟悉的类。我想问,这是携程的?还是携程抄手机淘宝的?要脸不?

重新安装bundle的时候出错了

11-20 12:40:46.626 29685-31468/com.sina.licaishi E/BundleCore: Error while dexopt >>>
java.io.IOException: unable to open DEX file
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:296)
at dalvik.system.DexFile.(DexFile.java:111)
at dalvik.system.DexFile.loadDex(DexFile.java:151)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:266)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:230)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at ctrip.android.bundle.loader.BundlePathLoader$V19.makeDexElements(BundlePathLoader.java:222)
at ctrip.android.bundle.loader.BundlePathLoader$V19.install(BundlePathLoader.java:197)
at ctrip.android.bundle.loader.BundlePathLoader$V19.access$100(BundlePathLoader.java:183)
at ctrip.android.bundle.loader.BundlePathLoader.installBundleDexs(BundlePathLoader.java:51)
at ctrip.android.bundle.framework.storage.BundleArchiveRevision.optDexFile(BundleArchiveRevision.java:140)
at ctrip.android.bundle.framework.storage.BundleAchive.optDexFile(BundleAchive.java:100)
at ctrip.android.bundle.framework.BundleImpl.optDexFile(BundleImpl.java:119)
at ctrip.android.bundle.framework.BundleCore.run(BundleCore.java:82)

build 过程中因为 :sample:resign 任务失败而崩溃

今天刚clone 了库,打算build 一个,然后在build的时候出现了以下的问题:

Executing task ':sample:resign' (up-to-date check took 0.001 secs) due to:
  No history is available.
Starting process 'command 'null/bin/jarsigner''. Working directory: /Users/MadisonRong/dev/DynamicAPK/build-outputs Command: null/bin/jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /Users/MadisonRong/dev/DynamicAPK/demo.jks -storepass 123456 -keypass 123456 -signedjar demo-release-resigned.apk demo-release-repacked.apk demo
:sample:resign FAILED
:sample:resign (Thread[main,5,main]) completed. Took 0.045 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':sample:resign'.
> A problem occurred starting process 'command 'null/bin/jarsigner''

执行 gradlew assembleRelease bundleRelease repackAll 时报错

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/BuildConfig) does not match path (debug/ctrip/android/demo1/BuildConfig.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing debug/ctrip/android/demo1/BuildConfig.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/MainActivity) does not match path (debug/ctrip/android/demo1/MainActivity.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.pre(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing debug/ctrip/android/demo1/MainActivity.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R$attr) does not match path (debug/ctrip/android/demo1/R$attr.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at roid.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing debug/ctrip/android/demo1/R$attr.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R$dimen) does not match path (debug/ctrip/android/demo1/R$dimen.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPat.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing debug/ctrip/android/demo1/R$dimen.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R$drawable) does not match path (debug/ctrip/android/demo1/R$drawable.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpocessDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing debug/ctrip/android/demo1/R$drawable.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R$id) does not match path (debug/ctrip/android/demo1/R$id.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.ct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing debug/ctrip/android/demo1/R$id.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R$layout) does not match path (debug/ctrip/android/demo1/R$layout.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing debug/ctrip/android/demo1/R$layout.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R$string) does not match path (debug/ctrip/android/demo1/R$string.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dnd.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing debug/ctrip/android/demo1/R$string.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R) does not match path (debug/ctrip/android/demo1/R.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagctClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing debug/ctrip/android/demo1/R.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/BuildConfig) does not match path (release/ctrip/android/demo1/BuildConfig.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing release/ctrip/android/demo1/BuildConfig.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/MainActivity) does not match path (release/ctrip/android/demo1/MainActivity.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.5)va:21
at com.android.dx.command.Main.main(Main.java:106)
...while parsing release/ctrip/android/demo1/MainActivity.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R$attr) does not match path (release/ctrip/android/demo1/R$attr.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.AllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing release/ctrip/android/demo1/R$attr.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R$dimen) does not match path (release/ctrip/android/demo1/R$dimen.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpva:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing release/ctrip/android/demo1/R$dimen.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R$drawable) does not match path (release/ctrip/android/demo1/R$drawable.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.Clasener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing release/ctrip/android/demo1/R$drawable.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R$id) does not match path (release/ctrip/android/demo1/R$id.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com..dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing release/ctrip/android/demo1/R$id.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R$layout) does not match path (release/ctrip/android/demo1/R$layout.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPat.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing release/ctrip/android/demo1/R$layout.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R$string) does not match path (release/ctrip/android/demo1/R$string.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOrocessDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing release/ctrip/android/demo1/R$string.class

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name (ctrip/android/demo1/R) does not match path (release/ctrip/android/demo1/R.class)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at coid.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing release/ctrip/android/demo1/R.class

18 errors; aborting
:demo1:dexRelease FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':demo1:dexRelease'.

    Process 'command 'D:\Android\adt-bundle-windows-x86_64-20140321\sdk/build-tools/21.1.2/dx.bat'' finished with non-zero exit value 1

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 50.81 secs

按照使用方法build,还是会出现 java.lang.ClassNotFoundException:

01-14 10:10:43.979 2496-27871/? W/UpdateCheckService: get domain return null
01-14 10:10:44.559 27666-27666/? W/System.err: java.lang.ClassNotFoundException: ctrip.android.demo1.MainActivity
01-14 10:10:44.559 27666-27666/? W/System.err: at java.lang.Class.classForName(Native Method)
01-14 10:10:44.559 27666-27666/? W/System.err: at java.lang.Class.forName(Class.java:217)
01-14 10:10:44.559 27666-27666/? W/System.err: at java.lang.Class.forName(Class.java:172)
01-14 10:10:44.559 27666-27666/? W/System.err: at ctrip.android.sample.MainActivity$1.onClick(MainActivity.java:20)
01-14 10:10:44.559 27666-27666/? W/System.err: at android.view.View.performClick(View.java:4084)
01-14 10:10:44.564 27666-27666/? W/System.err: at android.view.View$PerformClick.run(View.java:17329)
01-14 10:10:44.564 27666-27666/? W/System.err: at android.os.Handler.handleCallback(Handler.java:615)
01-14 10:10:44.564 27666-27666/? W/System.err: at android.os.Handler.dispatchMessage(Handler.java:92)
01-14 10:10:44.564 27666-27666/? W/System.err: at android.os.Looper.loop(Looper.java:137)
01-14 10:10:44.564 27666-27666/? W/System.err: at android.app.ActivityThread.main(ActivityThread.java:4866)
01-14 10:10:44.569 27666-27666/? W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
01-14 10:10:44.569 27666-27666/? W/System.err: at java.lang.reflect.Method.invoke(Method.java:511)
01-14 10:10:44.569 27666-27666/? W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
01-14 10:10:44.569 27666-27666/? W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
01-14 10:10:44.569 27666-27666/? W/System.err: at dalvik.system.NativeStart.main(Native Method)
01-14 10:10:44.569 27666-27666/? W/System.err: Caused by: java.lang.NoClassDefFoundError: ctrip/android/demo1/MainActivity
01-14 10:10:44.569 27666-27666/? W/System.err: ... 15 more
01-14 10:10:44.574 27666-27666/? W/System.err: Caused by: java.lang.ClassNotFoundException: ctrip.android.demo1.MainActivity
01-14 10:10:44.574 27666-27666/? W/System.err: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
01-14 10:10:44.574 27666-27666/? W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
01-14 10:10:44.574 27666-27666/? W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
01-14 10:10:44.574 27666-27666/? W/System.err: ... 15 more

插件 apk 访问 Android style 文件的问题

如:访问 v7 包下的 Theme.AppCompat.Light style 会报:No resource found that matches the given name 的错误,
以及ProgressBar 的 @style/Widget.AppCompat.ProgressBar.Horizontal 也是如此:Error: No resource found that matches the given name (at 'style' with value '@style/Widget.AppCompat.ProgressBar.Horizontal'). 等等。类似的访问 Android 这些资源都会报类似错误~~

注:v7 包已经导入:'com.android.support:appcompat-v7:23.1.1'

Demo2 访问 host 资源的问题

如果如示例 demo 写的话,示例 demo 编译和访问 host 资源都没有问题

但是当我集成到我自己的项目中的时候,我把 sample 项目换成了我自己的项目,demo1 和 demo2 依然用你们的示例中的两个 demo1,
但是在我编译的时候:执行 :demo2:compileRelease 是会报错的,求解求解,去掉textView.setText(R.string.sample_text);imageView.setImageResource(R.drawable.sample); 的话,则没有问题,但这是不是说明我插件apk 就没有访问 host 资源的能力了~~求解

能不能帮忙解答一下,是准备用到线上的项目里去的,着急着急

:demo2:init
:demo2:aaptRelease UP-TO-DATE
:demo2:compileRelease
警告: [options] 未与 -source 1.7 一起设置引导类路径
/Users/Code/trunk_so/demo2/src/ctrip/android/demo2/MainActivity.java:15: 错误: 找不到符号
        textView.setText(R.string.sample_text);
                                 ^
  符号:   变量 sample_text
  位置: 类 string
/Users/Code/trunk_so/demo2/src/ctrip/android/demo2/MainActivity.java:17: 错误: 找不到符号
        imageView.setImageResource(R.drawable.sample);
                                             ^
  符号:   变量 sample
  位置: 类 drawable
2 个错误
1 个警告
:demo2:compileRelease FAILED
FAILURE: Build failed with an exception.

"宿主和插件的资源不应有重名”问题

“宿主和插件的资源不应有重名”问题还是比较好解决的,既然编译期间都已经按照project id区分了,这问题都想到了,那就理所当然的去解决资源重名问题,不要被Android原生系统的解决方案带到沟里去了。

ClassNotFoundException Bug

首次启动的时候进入app,点击进入插件,在插件页面异常结束app,再次进入app点击btn进入插件就会报找不到类

java.lang.ClassNotFoundException: ctrip.android.demo1.MainActivity
11-16 14:49:58.337 27070-27070/ctrip.android.sample W/System.err:     at java.lang.Class.classForName(Native Method)
11-16 14:49:58.337 27070-27070/ctrip.android.sample W/System.err:     at java.lang.Class.forName(Class.java:251)
11-16 14:49:58.337 27070-27070/ctrip.android.sample W/System.err:     at java.lang.Class.forName(Class.java:216)
11-16 14:49:58.338 27070-27070/ctrip.android.sample W/System.err:     at ctrip.android.sample.MainActivity$1.onClick(MainActivity.java:22)
11-16 14:49:58.338 27070-27070/ctrip.android.sample W/System.err:     at android.view.View.performClick(View.java:4444)
11-16 14:49:58.338 27070-27070/ctrip.android.sample W/System.err:     at android.view.View$PerformClick.run(View.java:18440)
11-16 14:49:58.339 27070-27070/ctrip.android.sample W/System.err:     at android.os.Handler.handleCallback(Handler.java:733)
11-16 14:49:58.339 27070-27070/ctrip.android.sample W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
11-16 14:49:58.339 27070-27070/ctrip.android.sample W/System.err:     at android.os.Looper.loop(Looper.java:136)
11-16 14:49:58.339 27070-27070/ctrip.android.sample W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5016)
11-16 14:49:58.339 27070-27070/ctrip.android.sample W/System.err:     at java.lang.reflect.Method.invokeNative(Native Method)
11-16 14:49:58.340 27070-27070/ctrip.android.sample W/System.err:     at java.lang.reflect.Method.invoke(Method.java:515)
11-16 14:49:58.340 27070-27070/ctrip.android.sample W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
11-16 14:49:58.340 27070-27070/ctrip.android.sample W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
11-16 14:49:58.340 27070-27070/ctrip.android.sample W/System.err:     at dalvik.system.NativeStart.main(Native Method)
11-16 14:49:58.341 27070-27070/ctrip.android.sample W/System.err: Caused by: java.lang.NoClassDefFoundError: ctrip/android/demo1/MainActivity
11-16 14:49:58.341 27070-27070/ctrip.android.sample W/System.err:   ... 15 more
11-16 14:49:58.342 27070-27070/ctrip.android.sample W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "ctrip.android.demo1.MainActivity" on path: DexPathList[[zip file "/data/app/ctrip.android.sample-1.apk"],nativeLibraryDirectories=[/data/app-lib/ctrip.android.sample-1, /vendor/lib, /system/lib]]
11-16 14:49:58.343 27070-27070/ctrip.android.sample W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
11-16 14:49:58.346 27070-27070/ctrip.android.sample W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
11-16 14:49:58.347 27070-27070/ctrip.android.sample W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
11-16 14:49:58.348 27070-27070/ctrip.android.sample W/System.err:   ... 15 more

子工程中无法使用v7的自定义属性

执行 ./gradlew assembleRelease bundleRelease repackAll 命令 会出现以下的error

/Users/cxd/Downloads/DynamicAPK-master/demo2/res/menu/module_nearby_around_menu.xml:4: error: No resource identifier found for attribute 'showAsAction' in package 'ctrip.android.demo2'

/Users/cxd/Downloads/DynamicAPK-master/demo2/res/menu/module_nearby_around_menu.xml:7: error: No resource identifier found for attribute 'showAsAction' in package 'ctrip.android.demo2'

/Users/cxd/Downloads/DynamicAPK-master/demo2/res/menu/module_nearby_around_menu.xml:10: error: No resource identifier found for attribute 'showAsAction' in package 'ctrip.android.demo2'

image
image
image

以下是menu文件的内容

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/m_n_menu_parking"
        android:icon="@drawable/module_nearby_selector_discovery_parking_btn"
        android:orderInCategory="70"
        android:title="停车场"
        app:showAsAction="always" />
    <item
        android:id="@+id/m_n_menu_gasstation"
        android:icon="@drawable/module_nearby_selector_discovery_gasstation_btn"
        android:orderInCategory="80"
        android:title="加油站"
        app:showAsAction="always" />
    <item
        android:id="@+id/m_n_menu_violation"
        android:icon="@drawable/module_nearby_selector_discovery_violation_btn"
        android:orderInCategory="90"
        android:title="违章点"
        app:showAsAction="always" />
</menu>

如果无法使用v7的属性的话,那么是不是也无法使用主工程的自定义属性

Could not find com.android.tools.build:gradle:1.3.1.

请问这是什么情况,我Android Studio用的就是'com.android.tools.build:gradle:1.3.1'没有问题。
qq 20160125153451

it-010@it010:~/git/DynamicAPK$ gradle assembleRelease bundleRelease repackAll

FAILURE: Build failed with an exception.

  • What went wrong:
    Could not resolve all dependencies for configuration ':classpath'.

    Could not find com.android.tools.build:gradle:1.3.1.
    Required by:
    :DynamicAPK:unspecified

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

如何使用

你好,请问一下,这个开源库如何使用呢?能够简单的描述一下吗

关于aapt_liunx,aapt_mac,aapt_win.exe开源

学习整个项目之后,发现,其核心的aapt的相关说明以及源代码未开源。
想知道何时发布aapt相关的呢?很期待这个开源项目的aapt部分再次开源哦。
come on ....

携程Android客户端存在的问题——不保留活动容易Crash

在开发者选项中开启不保留活动,会频繁的造成Android客户端的Crash,而且在下次打开App的时候,会提示关闭这个选项,这个是因为插件化带来的副作用吗?

如果在低配置手机上,有很大概率会造成Activity的回收,这种是否也会Crash?

最后问下,携程在北京的技术团队招人不?Android~

关于aapt_win.exe

我使用这里面的aapt_win.exe怎么没有新增那几个--public-R-path,--apk-module的功能,这个项目里面的是不是还是未改造过的

atlas hack assert failed?

https://github.com/CtripMobile/DynamicAPK/blob/master/bundle/src/ctrip/android/bundle/hack/SysHacks.java
'''
package ctrip.android.bundle.hack;

import android.app.Application;
import android.app.Instrumentation;
import android.app.Service;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.res.AssetManager;
import android.content.res.Resources;
import android.os.Build;
import android.view.ContextThemeWrapper;

import java.util.ArrayList;
import java.util.Map;

import ctrip.android.bundle.hack.Hack.HackedClass;
import ctrip.android.bundle.hack.Hack.HackedField;
import ctrip.android.bundle.hack.Hack.HackedMethod;
import ctrip.android.bundle.log.Logger;
import ctrip.android.bundle.log.LoggerFactory;
import dalvik.system.DexClassLoader;

/**

  • Created by yb.wang on 14/12/31.

  • Hack 系统的功能:包括类加载机制,资源加载,Context等
    */
    public class SysHacks extends Hack.HackDeclaration implements Hack.AssertionFailureHandler {
    public static HackedClass ActivityThread;
    public static HackedMethod ActivityThread_currentActivityThread;
    public static HackedField<Object, ArrayList<android.app.Application>> ActivityThread_mAllApplications;
    public static HackedField<Object, Instrumentation> ActivityThread_mInstrumentation;
    public static HackedField<Object, Map<String, Object>> ActivityThread_mPackages;
    public static HackedField<Object, Object> ActivityThread_sPackageManager;
    public static HackedClass Application;
    public static HackedMethod Application_attach;
    public static HackedClass<android.content.res.AssetManager> AssetManager;
    public static HackedMethod AssetManager_addAssetPath;
    public static HackedClass ClassLoader;
    public static HackedMethod ClassLoader_findLibrary;
    public static HackedClass ContextImpl;
    public static HackedField<Object, android.content.res.Resources> ContextImpl_mResources;
    public static HackedField<Object, android.content.res.Resources.Theme> ContextImpl_mTheme;
    public static HackedClass<android.view.ContextThemeWrapper> ContextThemeWrapper;
    public static HackedField<ContextThemeWrapper, Context> ContextThemeWrapper_mBase;
    public static HackedField<ContextThemeWrapper, Resources> ContextThemeWrapper_mResources;
    public static HackedField<ContextThemeWrapper, android.content.res.Resources.Theme> ContextThemeWrapper_mTheme;
    public static HackedClass<android.content.ContextWrapper> ContextWrapper;
    public static HackedField<ContextWrapper, Context> ContextWrapper_mBase;
    public static HackedClass<dalvik.system.DexClassLoader> DexClassLoader;
    public static HackedMethod DexClassLoader_findClass;
    public static ArrayList GeneratePackageInfoList;
    public static ArrayList GetPackageInfoList;
    public static HackedClass IPackageManager;
    public static HackedClass LexFile;
    public static HackedMethod LexFile_close;
    public static HackedMethod LexFile_loadClass;
    public static HackedMethod LexFile_loadLex;
    public static HackedClass LoadedApk;
    public static HackedField<Object, String> LoadedApk_mAppDir;
    public static HackedField<Object, Application> LoadedApk_mApplication;
    public static HackedField<Object, ClassLoader> LoadedApk_mBaseClassLoader;
    public static HackedField<Object, ClassLoader> LoadedApk_mClassLoader;
    public static HackedField<Object, String> LoadedApk_mResDir;
    public static HackedField<Object, Resources> LoadedApk_mResources;
    public static HackedClass Resources;
    public static HackedField<Resources, Object> Resources_mAssets;
    public static HackedClass<android.app.Service> Service;
    public static HackedClass Instrumentation;

    public static boolean sIsIgnoreFailure;
    public static boolean sIsReflectAvailable;
    public static boolean sIsReflectChecked;
    private AssertionArrayException mExceptionArray;
    static final Logger log;

    public SysHacks() {
    this.mExceptionArray = null;
    }

    static {
    log = LoggerFactory.getLogcatLogger("SysHacks");
    sIsReflectAvailable = false;
    sIsReflectChecked = false;
    sIsIgnoreFailure = false;
    GeneratePackageInfoList = new ArrayList();
    GetPackageInfoList = new ArrayList();
    }

    public static boolean defineAndVerify() throws AssertionArrayException {
    if (sIsReflectChecked) {
    return sIsReflectAvailable;
    }
    SysHacks atlasHacks = new SysHacks();
    try {
    Hack.setAssertionFailureHandler(atlasHacks);
    if (Build.VERSION.SDK_INT == 11) {
    atlasHacks.onAssertionFailure(new HackAssertionException("Hack Assertion Failed: Android OS Version 11"));
    }
    allClasses();
    allConstructors();
    allFields();
    allMethods();
    if (atlasHacks.mExceptionArray != null) {
    sIsReflectAvailable = false;
    throw atlasHacks.mExceptionArray;
    }
    sIsReflectAvailable = true;
    return sIsReflectAvailable;
    } catch (Throwable e) {
    sIsReflectAvailable = false;
    log.log("HackAssertionException", Logger.LogLevel.ERROR, e);
    throw new AssertionArrayException("defineAndVerify HackAssertionException");
    } finally {
    Hack.setAssertionFailureHandler(null);
    sIsReflectChecked = true;
    }
    }

    public static void allClasses() throws HackAssertionException {
    if (Build.VERSION.SDK_INT <= 8) {
    LoadedApk = Hack.into("android.app.ActivityThread$PackageInfo");
    } else {
    LoadedApk = Hack.into("android.app.LoadedApk");
    }
    ActivityThread = Hack.into("android.app.ActivityThread");
    Resources = Hack.into(Resources.class);
    Application = Hack.into(Application.class);
    AssetManager = Hack.into(AssetManager.class);
    IPackageManager = Hack.into("android.content.pm.IPackageManager");
    Service = Hack.into(Service.class);
    ContextImpl = Hack.into("android.app.ContextImpl");
    ContextThemeWrapper = Hack.into(ContextThemeWrapper.class);
    ContextWrapper = Hack.into("android.content.ContextWrapper");
    sIsIgnoreFailure = true;
    ClassLoader = Hack.into(ClassLoader.class);
    DexClassLoader = Hack.into(DexClassLoader.class);
    LexFile = Hack.into("dalvik.system.LexFile");
    Instrumentation = Hack.into("android.app.Instrumentation");
    sIsIgnoreFailure = false;
    }

    public static void allFields() throws HackAssertionException {

    ActivityThread_mInstrumentation = ActivityThread.field("mInstrumentation");
    ActivityThread_mInstrumentation.ofType(Instrumentation.class);
    ActivityThread_mAllApplications = ActivityThread.field("mAllApplications");
    ActivityThread_mAllApplications.ofGenericType(ArrayList.class);
    ActivityThread_mPackages = ActivityThread.field("mPackages");
    ActivityThread_mPackages.ofGenericType(Map.class);
    ActivityThread_sPackageManager = ActivityThread.staticField("sPackageManager").ofType(IPackageManager.getmClass());
    LoadedApk_mApplication = LoadedApk.field("mApplication");
    LoadedApk_mApplication.ofType(Application.class);
    LoadedApk_mResources = LoadedApk.field("mResources");
    LoadedApk_mResources.ofType(Resources.class);
    LoadedApk_mResDir = LoadedApk.field("mResDir");
    LoadedApk_mResDir.ofType(String.class);
    LoadedApk_mClassLoader = LoadedApk.field("mClassLoader");
    LoadedApk_mClassLoader.ofType(ClassLoader.class);
    LoadedApk_mBaseClassLoader = LoadedApk.field("mBaseClassLoader");
    LoadedApk_mBaseClassLoader.ofType(ClassLoader.class);
    LoadedApk_mAppDir = LoadedApk.field("mAppDir");
    LoadedApk_mAppDir.ofType(String.class);
    ContextImpl_mResources = ContextImpl.field("mResources");
    ContextImpl_mResources.ofType(Resources.class);
    ContextImpl_mTheme = ContextImpl.field("mTheme");
    ContextImpl_mTheme.ofType(android.content.res.Resources.Theme.class);
    sIsIgnoreFailure = true;
    ContextThemeWrapper_mBase = ContextThemeWrapper.field("mBase");
    ContextThemeWrapper_mBase.ofType(Context.class);
    sIsIgnoreFailure = false;
    ContextThemeWrapper_mTheme = ContextThemeWrapper.field("mTheme");
    ContextThemeWrapper_mTheme.ofType(android.content.res.Resources.Theme.class);
    try {
        if (Build.VERSION.SDK_INT >= 17 && ContextThemeWrapper.getmClass().getDeclaredField("mResources") != null) {
            ContextThemeWrapper_mResources = ContextThemeWrapper.field("mResources");
            ContextThemeWrapper_mResources.ofType(Resources.class);
        }
    } catch (NoSuchFieldException e) {
        log.log("Not found ContextThemeWrapper.mResources on VERSION " + Build.VERSION.SDK_INT, Logger.LogLevel.WARN);
    }
    ContextWrapper_mBase = ContextWrapper.field("mBase");
    ContextWrapper_mBase.ofType(Context.class);
    Resources_mAssets = Resources.field("mAssets");
    

    }

    public static void allMethods() throws HackAssertionException {
    ActivityThread_currentActivityThread = ActivityThread.method("currentActivityThread", new Class[0]);
    AssetManager_addAssetPath = AssetManager.method("addAssetPath", String.class);
    Application_attach = Application.method("attach", Context.class);
    ClassLoader_findLibrary = ClassLoader.method("findLibrary", String.class);
    if (LexFile != null && LexFile.getmClass() != null) {
    LexFile_loadLex = LexFile.method("loadLex", String.class, Integer.TYPE);
    LexFile_loadClass = LexFile.method("loadClass", String.class, ClassLoader.class);
    LexFile_close = LexFile.method("close", new Class[0]);
    DexClassLoader_findClass = DexClassLoader.method("findClass", String.class);
    }
    }

    public static void allConstructors() throws HackAssertionException {
    }

    public boolean onAssertionFailure(HackAssertionException hackAssertionException) {
    if (!sIsIgnoreFailure) {
    if (this.mExceptionArray == null) {
    this.mExceptionArray = new AssertionArrayException("atlas hack assert failed");
    }
    this.mExceptionArray.addException(hackAssertionException);
    }
    return true;
    }
    }
    '''
    找亮点

关于资源和dex打包到so

请问下这个so是不是只是相当于压缩文件,如果把资源和dex文件打包到jar结尾的文件是不是可以

./aapt_mac : segmentation fault

执行了: ./aapt_mac ctrip.android.demo1 --apk-module 0x27

结果: 3686 segmentation fault ./aapt_mac ctrip.android.demo1 --apk-module 0x27

apk_module_config.xml也改了

反编译打包出来的apk 的 R 查看还是10进制的 16进制值0x7F 没有变为0x27 .......

./aapt_mac 怎么使用合理?

文档上的是aapt_mac ...... --apk-module 0x58 ,看不出问题。

如何启动子apk的activity

我看到demo中demo1的activity和demo2的activity都声明在了主项目AndroidManifest中。能否不在主项目AndroidManifest中声明activity,而启动activity?
如果在主项目声明,岂不是每次子项目没新创建一个activity,都要升级主项目?

aapt compile

aapt的编译必须依赖android源码吗?还是可以脱离android源码单独编译?

Manifest注册问题

插件的Activity是否必须注册在 宿主程序的Manifest里面?
否则加载的时候就无法找到对应的Activity?
这样如果插件有新增功能需要新增Activity。岂不是必须先升级宿主程序的Manifest?
如果宿主程序升级Manifest,可以通过打补丁的方式升级嘛?

抄袭很简单,但是你知道为什么需要处理小米ui资源吗?

        //处理小米UI资源
        if (resources == null || !resources.getClass().getName().equals("android.content.res.MiuiResources")) {
            delegateResources = new DelegateResources(assetManager, resources);
        } else {
            Constructor declaredConstructor = Class.forName("android.content.res.MiuiResources").getDeclaredConstructor(new Class[]{AssetManager.class, DisplayMetrics.class, Configuration.class});
            declaredConstructor.setAccessible(true);
            delegateResources = (Resources) declaredConstructor.newInstance(new Object[]{assetManager, resources.getDisplayMetrics(), resources.getConfiguration()});
        }

Demo2 访问 host 资源的问题

我在Android Studio打开项目,在编译时遭遇如下Error:
..\DynamicAPK-master\demo2\src\ctrip\android\demo2\MainActivity.java
Error:(15, 34) 错误: 找不到符号
符号: 变量 sample_text
位置: 类 string
Error:(17, 46) 错误: 找不到符号
符号: 变量 sample
位置: 类 drawable
2 个错误
Error:Execution failed for task ':demo2:compileDebugJavaWithJavac'.

Compilation failed; see the compiler error output for details.

请问是什么原因导致?改如何处理?【其实有google到这个issue,不过被关闭了,而且没有提到如何解决,只好再问一次】

执行 ./gradlew assembleRelease bundleRelease repackAll 报错

如下面的错误信息:竟然报了这么多错误- -。

192:DynamicAPKCopy MrFu$ ./gradlew assembleRelease bundleRelease repackAll

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'DynamicAPKCopy'.
> Could not resolve all dependencies for configuration ':classpath'.
   > Could not find net.sf.proguard:proguard-gradle:5.2.1.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/net/sf/proguard/proguard-gradle/5.2.1/proguard-gradle-5.2.1.pom
         http://mirrors.ibiblio.org/maven2/net/sf/proguard/proguard-gradle/5.2.1/proguard-gradle-5.2.1.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1
   > Could not find com.squareup:javawriter:2.5.0.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/com/squareup/javawriter/2.5.0/javawriter-2.5.0.pom
         http://mirrors.ibiblio.org/maven2/com/squareup/javawriter/2.5.0/javawriter-2.5.0.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1
   > Could not find org.bouncycastle:bcpkix-jdk15on:1.48.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48.pom
         http://mirrors.ibiblio.org/maven2/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1
   > Could not find org.bouncycastle:bcprov-jdk15on:1.48.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48.pom
         http://mirrors.ibiblio.org/maven2/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1
   > Could not find org.ow2.asm:asm:5.0.3.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/org/ow2/asm/asm/5.0.3/asm-5.0.3.pom
         http://mirrors.ibiblio.org/maven2/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.lint:lint:24.3.1 > com.android.tools.lint:lint-checks:24.3.1 > com.android.tools.lint:lint-api:24.3.1
   > Could not find org.ow2.asm:asm-tree:5.0.3.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.pom
         http://mirrors.ibiblio.org/maven2/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.lint:lint:24.3.1 > com.android.tools.lint:lint-checks:24.3.1 > com.android.tools.lint:lint-api:24.3.1
   > Could not find com.android.tools.jack:jack-api:0.9.0.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/com/android/tools/jack/jack-api/0.9.0/jack-api-0.9.0.pom
         http://mirrors.ibiblio.org/maven2/com/android/tools/jack/jack-api/0.9.0/jack-api-0.9.0.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1
   > Could not find com.android.tools.jill:jill-api:0.9.0.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/com/android/tools/jill/jill-api/0.9.0/jill-api-0.9.0.pom
         http://mirrors.ibiblio.org/maven2/com/android/tools/jill/jill-api/0.9.0/jill-api-0.9.0.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1
   > Could not find org.eclipse.jdt.core.compiler:ecj:4.4.2.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2.pom
         http://mirrors.ibiblio.org/maven2/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.lint:lint:24.3.1
   > Could not find com.google.code.gson:gson:2.2.4.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/com/google/code/gson/gson/2.2.4/gson-2.2.4.pom
         http://mirrors.ibiblio.org/maven2/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1 > com.android.tools:sdklib:24.3.1
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1 > com.android.tools.build:manifest-merger:24.3.1
   > Could not find org.apache.commons:commons-compress:1.8.1.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.pom
         http://mirrors.ibiblio.org/maven2/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1 > com.android.tools:sdklib:24.3.1
   > Could not find org.apache.httpcomponents:httpclient:4.1.1.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1.pom
         http://mirrors.ibiblio.org/maven2/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1 > com.android.tools:sdklib:24.3.1
   > Could not find org.apache.httpcomponents:httpmime:4.1.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/org/apache/httpcomponents/httpmime/4.1/httpmime-4.1.pom
         http://mirrors.ibiblio.org/maven2/org/apache/httpcomponents/httpmime/4.1/httpmime-4.1.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1 > com.android.tools:sdklib:24.3.1
   > Could not find com.google.guava:guava:17.0.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/com/google/guava/guava/17.0/guava-17.0.pom
         http://mirrors.ibiblio.org/maven2/com/google/guava/guava/17.0/guava-17.0.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1 > com.android.tools:common:24.3.1
   > Could not find net.sf.kxml:kxml2:2.3.0.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.pom
         http://mirrors.ibiblio.org/maven2/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1 > com.android.tools.build:manifest-merger:24.3.1
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1 > com.android.tools.ddms:ddmlib:24.3.1
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1 > com.android.tools:sdklib:24.3.1 > com.android.tools.layoutlib:layoutlib-api:24.3.1
   > Could not find org.ow2.asm:asm-analysis:5.0.3.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.pom
         http://mirrors.ibiblio.org/maven2/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.lint:lint:24.3.1 > com.android.tools.lint:lint-checks:24.3.1
   > Could not find com.intellij:annotations:12.0.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/com/intellij/annotations/12.0/annotations-12.0.pom
         http://mirrors.ibiblio.org/maven2/com/intellij/annotations/12.0/annotations-12.0.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.build:builder:1.3.1 > com.android.tools:sdklib:24.3.1 > com.android.tools.layoutlib:layoutlib-api:24.3.1
   > Could not find com.android.tools.external.lombok:lombok-ast:0.2.3.
     Searched in the following locations:
         http://mirrors.ibiblio.org/maven2/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3.pom
         http://mirrors.ibiblio.org/maven2/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3.jar
     Required by:
         :DynamicAPKCopy:unspecified > com.android.tools.build:gradle:1.3.1 > com.android.tools.build:gradle-core:1.3.1 > com.android.tools.lint:lint:24.3.1 > com.android.tools.lint:lint-checks:24.3.1 > com.android.tools.lint:lint-api:24.3.1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 7.347 secs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.