Git Product home page Git Product logo

virtualapk's Introduction

Android 9.0 supported! Please use the lastest release.

VirtualAPK

license Release Version PRs Welcome

VirtualAPK is a powerful yet lightweight plugin framework for Android. It can dynamically load and run an APK file (we call it LoadedPlugin) seamlessly as an installed application. Developers can use any Class, Resources, Activity, Service, Receiver and Provider in LoadedPlugin as if they are registered in app's manifest file.

VirtualAPK

Supported Features

Feature Detail
Supported components Activity, Service, Receiver and Provider
Manually register components in AndroidManifest.xml No need
Access host app classes and resources Supported
PendingIntent Supported
Supported Android features Almost all features
Compatibility Almost all devices
Building system Gradle plugin
Supported Android versions API Level 15+

Getting started

Host Project

Add a dependency in build.gradle in root of host project as following.

dependencies {
    classpath 'com.didi.virtualapk:gradle:0.9.8.6'
}

Apply plugin in application module of build.gradle.

apply plugin: 'com.didi.virtualapk.host'

Compile VirtualAPK in application module of build.gradle.

compile 'com.didi.virtualapk:core:0.9.8'

Initialize PluginManager in YourApplication::attachBaseContext().

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    PluginManager.getInstance(base).init();
}

Modify proguard rules to keep VirtualAPK related files.

-keep class com.didi.virtualapk.internal.VAInstrumentation { *; }
-keep class com.didi.virtualapk.internal.PluginContentResolver { *; }

-dontwarn com.didi.virtualapk.**
-dontwarn android.**
-keep class android.** { *; }

Finally, load an APK and have fun!

String pluginPath = Environment.getExternalStorageDirectory().getAbsolutePath().concat("/Test.apk");
File plugin = new File(pluginPath);
PluginManager.getInstance(base).loadPlugin(plugin);

// Given "com.didi.virtualapk.demo" is the package name of plugin APK, 
// and there is an activity called `MainActivity`.
Intent intent = new Intent();
intent.setClassName("com.didi.virtualapk.demo", "com.didi.virtualapk.demo.MainActivity");
startActivity(intent);

Plugin Project

Add a dependency in build.gradle in root of plugin project as following.

dependencies {
    classpath 'com.didi.virtualapk:gradle:0.9.8.6'
}

Apply plugin in application module of build.gradle.

apply plugin: 'com.didi.virtualapk.plugin'

Config VirtualAPK. Remember to put following lines at the end of build.gradle.

virtualApk {
    packageId = 0x6f             // The package id of Resources.
    targetHost='source/host/app' // The path of application module in host project.
    applyHostMapping = true      // [Optional] Default value is true. 
}

Developer guide

Known issues

  • Notifications with custom layout are not supported in plugin.
  • Transition animations with animation resources are not supported in plugin.

Contributing

Welcome to contribute by creating issues or sending pull requests. See Contributing Guide for guidelines.

Who is using VirtualAPK?

滴滴出行 Uber**

License

VirtualAPK is licensed under the Apache License 2.0. See the LICENSE file.

virtualapk's People

Contributors

claymantwinkle avatar huandu avatar singwhatiwanna avatar superqiaopu avatar threeloe avatar zhengtao620 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

virtualapk's Issues

编译报错:ManifestDependency 把命令换一下

构建报错的构建插件时报错Failed to notify project evaluation listener com/android/builder/dependency/ManifestDependency
可以把命令换一下
gradle clean assembleRelease---> ./gradlew clean assembleRelease
gradle clean assemblePlugin--->./gradlew clean assemblePlugin
换了后可以正常编译

貌似找不到资源,怎么破

FATAL EXCEPTION: main Process: com.didi.virtualapk, PID: 5887 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.didi.virtualapk/com.didi.virtualapk.core.A$1}: android.content.res.Resources$NotFoundException: Resource ID #0x7f03001a at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2187) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236) at android.app.ActivityThread.access$800(ActivityThread.java:138) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5095) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) at dalvik.system.NativeStart.main(Native Method) Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f03001a at android.content.res.Resources.getValue(Resources.java:1123) at android.content.res.Resources.loadXmlResourceParser(Resources.java:2309) at android.content.res.Resources.getLayout(Resources.java:939) at android.view.LayoutInflater.inflate(LayoutInflater.java:395) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) at android.app.Activity.setContentView(Activity.java:1929) at com.didi.virtualapk.demo.aidl.BookManagerActivity.onCreate(BookManagerActivity.java:98) at android.app.Activity.performCreate(Activity.java:5231) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at com.didi.virtualapk.internal.VAInstrumentation.callActivityOnCreate(VAInstrumentation.java:141) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2151) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236)  at android.app.ActivityThread.access$800(ActivityThread.java:138)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:136)  at android.app.ActivityThread.main(ActivityThread.java:5095)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:515)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)  at dalvik.system.NativeStart.main(Native Method) 

跟360的有啥不一样?

    <activity android:name=".A$1" android:launchMode="standard"/>
    <activity android:name=".A$2" android:launchMode="standard"
        android:theme="@android:style/Theme.Translucent" />

    <!-- Stub Activities -->
    <activity android:name=".B$1" android:launchMode="singleTop"/>
    <activity android:name=".B$2" android:launchMode="singleTop"/>
    <activity android:name=".B$3" android:launchMode="singleTop"/>
    <activity android:name=".B$4" android:launchMode="singleTop"/>
    <activity android:name=".B$5" android:launchMode="singleTop"/>
    <activity android:name=".B$6" android:launchMode="singleTop"/>
    <activity android:name=".B$7" android:launchMode="singleTop"/>
    <activity android:name=".B$8" android:launchMode="singleTop"/>

    <!-- Stub Activities -->
    <activity android:name=".C$1" android:launchMode="singleTask"/>
    <activity android:name=".C$2" android:launchMode="singleTask"/>
    <activity android:name=".C$3" android:launchMode="singleTask"/>
    <activity android:name=".C$4" android:launchMode="singleTask"/>
    <activity android:name=".C$5" android:launchMode="singleTask"/>
    <activity android:name=".C$6" android:launchMode="singleTask"/>
    <activity android:name=".C$7" android:launchMode="singleTask"/>
    <activity android:name=".C$8" android:launchMode="singleTask"/>

    <!-- Stub Activities -->
    <activity android:name=".D$1" android:launchMode="singleInstance"/>
    <activity android:name=".D$2" android:launchMode="singleInstance"/>
    <activity android:name=".D$3" android:launchMode="singleInstance"/>
    <activity android:name=".D$4" android:launchMode="singleInstance"/>
    <activity android:name=".D$5" android:launchMode="singleInstance"/>
    <activity android:name=".D$6" android:launchMode="singleInstance"/>
    <activity android:name=".D$7" android:launchMode="singleInstance"/>
    <activity android:name=".D$8" android:launchMode="singleInstance"/>

    <!-- Local Service running in main process -->
    <service android:name="com.didi.virtualapk.delegate.LocalService" />

    <!-- Daemon Service running in child process -->
    <service android:name="com.didi.virtualapk.delegate.RemoteService" android:process=":daemon">
        <intent-filter>
            <action android:name="${applicationId}.intent.ACTION_DAEMON_SERVICE" />
        </intent-filter>
    </service>

    <provider
        android:name="com.didi.virtualapk.delegate.RemoteContentProvider"
        android:authorities="${applicationId}.VirtualAPK.Provider"
        android:process=":daemon" />

加载插件的问题

JNI_ERR returned from JNI_OnLoad in "/data/data/com.didi.virtualapk/.jiagu/libjiagu.so"

自己建的新宿主工程,配置好后执行gradle clean iR出错

  • What went wrong:
    Task 'iR' is ambiguous in root project 'VirtualAPKHost'. Candidates are: 'incrementalDebugAndroidTestJavaCompilationSafeguard', 'incrementalDebugJavaCompilationSafeguard', 'incrementalDebugUnitTestJavaCompilationSafeguard', 'incrementalReleaseJavaCompilationSafeguard', 'incrementalReleaseUnitTestJavaCompilationSafeguard'.

gradle clean iR 出错, 构建环境完全按照 Demo 工程运行须知来的

E:\AndroidStudioProjects\VirtualAPK-master>gradle clean iR

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring project ':AndroidStub'.

Failed to notify project evaluation listener.
com.android.build.gradle.tasks.factory.AndroidJavaCompile.setDependencyCacheDir(Ljava/io/File;)V

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

BUILD FAILED in 3s

以上是 error msg
AS版本 3.0 , win10 OS, device:魅族 Meizu M5 Note

按照正常流程走的,解析不正常

W/System.err: android.content.pm.PackageParser$PackageParserException: Failed to parse /storage/emulated/0/Test.apk
07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.pm.PackageParser.parseApkLite(PackageParser.java:1415)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.pm.PackageParser.parseMonolithicPackageLite(PackageParser.java:728)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.pm.PackageParser.parseMonolithicPackage(PackageParser.java:919)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.pm.PackageParser.parsePackage(PackageParser.java:834)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.pm.PackageParser.parsePackage(PackageParser.java:827)
07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.a.e.a(PackageParserCompat.java:44)
07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.a.b.a(PackageParserCompat.java:32)
07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.internal.c.(LoadedPlugin.java:150)
07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.internal.c.a(LoadedPlugin.java:78)
07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.b.a(PluginManager.java:202)
07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.MainActivity.a(MainActivity.java:77)
07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.MainActivity.onCreate(MainActivity.java:38)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.Activity.performCreate(Activity.java:6910)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
07-06 20:29:43.306 1080-1080/? W/System.err: at com.didi.virtualapk.internal.VAInstrumentation.callActivityOnCreate(VAInstrumentation.java:141)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2746)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.ActivityThread.-wrap12(ActivityThread.java)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.os.Looper.loop(Looper.java:156)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6524)
07-06 20:29:43.306 1080-1080/? W/System.err: at java.lang.reflect.Method.invoke(Native Method)
07-06 20:29:43.306 1080-1080/? W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)
07-06 20:29:43.306 1080-1080/? W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)
07-06 20:29:43.306 1080-1080/? W/System.err: Caused by: java.io.FileNotFoundException: AndroidManifest.xml
07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.res.AssetManager.openXmlAssetNative(Native Method)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:862)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:830)
07-06 20:29:43.306 1080-1080/? W/System.err: at android.content.pm.PackageParser.parseApkLite(PackageParser.java:1391)
07-06 20:29:43.306 1080-1080/? W/System.err: ... 24 more

终于编过了

下载的示例有点坑啊,PluginDemo里的targetHost是错的。郁闷。
还有gladle命令行编译,大家都有门槛。
还有首页那个使用步骤也没写清楚,不看了wiki,都不知道怎么编译,还以为是直接run。

插件apk 不能实例化控件

07-04 10:22:39.895 27880-27880/com.didi.virtualapk E/AndroidRuntime: FATAL EXCEPTION: main Process: com.didi.virtualapk, PID: 27880 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.didi.virtualapk/com.didi.virtualapk.core.A$1}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2679) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2750) at android.app.ActivityThread.-wrap13(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1595) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:5966) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference at mejust.mytest.TActivity.onCreate(TActivity.java:41) at android.app.Activity.performCreate(Activity.java:6300) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113) at com.didi.virtualapk.internal.VAInstrumentation.callActivityOnCreate(VAInstrumentation.java:141) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2632) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2750)  at android.app.ActivityThread.-wrap13(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1595)  at android.os.Handler.dispatchMessage(Handler.java:111)  at android.os.Looper.loop(Looper.java:207)  at android.app.ActivityThread.main(ActivityThread.java:5966)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749) 

打开新建插件apk报错,没有实例化控件,单独运行是没有错误的,如果将插件apk控件实例化注释掉,是可以运行,也能收到传递的值。
virtualApk { packageId = 0x6f // the package id of Resources. targetHost = 'com.didi.virtualapk/VirtualAPK/app' // the path of application module in host project. applyHostMapping = true //optional, default value: true. }
已在 build.gradle 里添加了如上代码,还是不知道原因,

先后加载两个拥有相同类的插件

根据代码来看,所有加载插件dex都insert到宿主中的dexclassloader中,假设两个插件都引用了相同的第三方库(宿主没有),那么都加载进去后一定会有问题把?

报错了。

FATAL EXCEPTION: main Process: com.didi.virtualapk, PID: 12503 java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation at dalvik.system.DexFile.defineClassNative(Native Method) at dalvik.system.DexFile.defineClass(DexFile.java:222) at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:215) at dalvik.system.DexPathList.findClass(DexPathList.java:322) at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) at java.lang.ClassLoader.loadClass(ClassLoader.java:497) at java.lang.ClassLoader.loadClass(ClassLoader.java:491) at java.lang.ClassLoader.loadClass(ClassLoader.java:457) at android.app.Instrumentation.newActivity(Instrumentation.java:1061) at com.didi.virtualapk.internal.VAInstrumentation.newActivity(VAInstrumentation.java:101) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2104) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236) at android.app.ActivityThread.access$800(ActivityThread.java:138) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5095) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) at dalvik.system.NativeStart.main(Native Method)

gradle clean iR编译到最后失败

Installing APK 'app-release.apk' on 'HUAWEI M2-A01W - 5.1.1' for app:release
Unable to install C:\Users\lc\Desktop\VirtualAPK-master\app\build\outputs\apk\app-release.apk
com.android.ddmlib.InstallException: Failed to install all
at com.android.ddmlib.SplitApkInstaller.install(SplitApkInstaller.java:91)
at com.android.ddmlib.Device.installPackages(Device.java:901)
at com.android.builder.testing.ConnectedDevice.installPackages(ConnectedDevice.java:119)
at com.android.build.gradle.internal.tasks.InstallVariantTask.install(InstallVariantTask.java:134)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:228)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:621)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:604)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:153)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:150)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:51)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:28)
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:43)
at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:173)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:239)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:212)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:205)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
at org.gradle.launcher.Main.doAction(Main.java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:55)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:36)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
09:44:25 E/178381408: Error while uploading app-release.apk : Unknown failure ([CDS]close[0])
:app:installRelease FAILED> Building 97% > :app:installRelease

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:installRelease'.

com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Failed to install all

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

BUILD FAILED

gradle版本2.14.1 机型HUAWEI M2-A01W - 5.1.1

java.lang.IncompatibleClassChangeError: com.didi.virtualapk.demo.aidl.BookManagerActivity

只修改了 app 和PluginDemo的sdk版本 ,

   compileSdkVersion 25
    buildToolsVersion "25.0.2"

加载插件时闪退
测试机型 小米5C
Android 版本 6.0
mui 8.1

07-03 19:49:56.378 2772-2772/com.didi.virtualapk E/AndroidRuntime: FATAL EXCEPTION: main
                                                                   Process: com.didi.virtualapk, PID: 2772
                                                                   java.lang.IncompatibleClassChangeError: com.didi.virtualapk.demo.aidl.BookManagerActivity
                                                                       at dalvik.system.DexFile.defineClassNative(Native Method)
                                                                       at dalvik.system.DexFile.defineClass(DexFile.java:226)
                                                                       at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
                                                                       at dalvik.system.DexPathList.findClass(DexPathList.java:338)
                                                                       at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
                                                                       at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                                                                       at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                                                                       at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                                                                       at android.app.Instrumentation.newActivity(Instrumentation.java:1067)
                                                                       at com.didi.virtualapk.internal.VAInstrumentation.newActivity(VAInstrumentation.java:101)
                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2324)
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483)
                                                                       at android.app.ActivityThread.access$900(ActivityThread.java:153)
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
                                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                       at android.os.Looper.loop(Looper.java:148)
                                                                       at android.app.ActivityThread.main(ActivityThread.java:5441)
                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)

运行报错

Error:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection
Possible causes for this unexpected error include:

In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

构建插件时报错

  • What went wrong:
    Execution failed for task ':app:processReleaseResources'.

Cannot invoke method getAt() on null object

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

  • Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processReleaseResources'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
    at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
    at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:153)
    at org.gradle.internal.Factories$1.create(Factories.java:22)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:150)
    at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
    at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
    at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99)
    at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
    at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
    at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
    at org.gradle.util.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:40)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
    at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
    Caused by: java.lang.NullPointerException: Cannot invoke method getAt() on null object
    at com.didi.virtualapk.aapt.ArscEditor.slice(ArscEditor.groovy:61)
    at com.didi.virtualapk.aapt.ArscEditor$slice.call(Unknown Source)
    at com.didi.virtualapk.aapt.Aapt.filterPackage(Aapt.groovy:51)
    at com.didi.virtualapk.aapt.Aapt$filterPackage$0.call(Unknown Source)
    at com.didi.virtualapk.merge.ResourceMerger$_merge_closure2.doCall(ResourceMerger.groovy:73)
    at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:590)
    at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:571)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    ... 68 more

BUILD FAILED

gradlew clean assemblePlugin问题

VirtualAPK-master>gradlew clean assemblePlugin
Incremental java compilation is an incubating feature.

FAILURE: Build failed with an exception.

  • What went wrong:
    Task 'assemblePlugin' not found in root project 'VirtualAPK-master'.

  • Try:
    Run gradlew tasks to get a list of available tasks. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

编译插件报错

执行命令 gradlew assemblePlugin 报错如下:

  • What went wrong:
    A problem occurred configuring project ':plugina'.

2

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

  • Exception is:
    org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':plugina'.
    at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:79)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:74)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:61)
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:540)
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:93)
    at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)
    at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
    at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:124)
    at org.gradle.internal.Factories$1.create(Factories.java:22)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:121)
    at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
    at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
    at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99)
    at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
    at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
    at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
    at org.gradle.util.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:40)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
    at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 2
    at com.didi.virtualapk.VAPlugin$_pickSplitEntries_closure8.doCall(VAPlugin.groovy:188)
    at com.didi.virtualapk.VAPlugin.pickSplitEntries(VAPlugin.groovy:186)
    at com.didi.virtualapk.VAPlugin$_apply_closure1$_closure16.doCall(VAPlugin.groovy:66)
    at com.didi.virtualapk.VAPlugin$_apply_closure1.doCall(VAPlugin.groovy:52)
    at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40)
    at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25)
    at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44)
    at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79)
    at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30)
    at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
    at com.sun.proxy.$Proxy12.afterEvaluate(Unknown Source)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:67)
    ... 52 more

BUILD FAILED

打开直接报错

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.didi.virtualapk/com.didi.virtualapk.core.A$1}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2451)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2511)
at android.app.ActivityThread.access$900(ActivityThread.java:165)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1375)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5621)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)

对theme的样式不支持

加载直接奔溃

java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
at dalvik.system.DexFile.defineClassNative(Native Method)
at dalvik.system.DexFile.defineClass(DexFile.java:222)
at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:215)
at dalvik.system.DexPathList.findClass(DexPathList.java:322)
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
at java.lang.ClassLoader.loadClass(ClassLoader.java:491)
at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
at android.app.Instrumentation.newActivity(Instrumentation.java:1067)
at com.didi.virtualapk.internal.VAInstrumentation.newActivity(VAInstrumentation.java:101)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2607)
at android.app.ActivityThread.access$900(ActivityThread.java:174)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1325)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5756)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
at dalvik.system.NativeStart.main(Native Method)

What should i do?

Error:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection
Possible causes for this unexpected error include:

加载插件失败

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.didi.virtualapk/com.didi.virtualapk.core.A$1}: java.lang.ClassNotFoundException: Didn't find class "com.didi.virtualapk.demo.aidl.BookManagerActivity" on path: DexPathList[[zip file "/storage/emulated/0/Test.apk"],nativeLibraryDirectories=[/data/data/com.didi.virtualapk/app_valibs, /vendor/lib, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3002)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3273)
at android.app.ActivityThread.access$1000(ActivityThread.java:219)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1735)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6959)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.didi.virtualapk.demo.aidl.BookManagerActivity" on path: DexPathList[[zip file "/storage/emulated/0/Test.apk"],nativeLibraryDirectories=[/data/data/com.didi.virtualapk/app_valibs, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.app.Instrumentation.newActivity(Instrumentation.java:1094)
at com.didi.virtualapk.internal.VAInstrumentation.newActivity(VAInstrumentation.java:101)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2992)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3273) 
at android.app.ActivityThread.access$1000(ActivityThread.java:219) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1735) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:145) 
at android.app.ActivityThread.main(ActivityThread.java:6959) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
Suppressed: java.lang.ClassNotFoundException: Didn't find class "com.didi.virtualapk.demo.aidl.BookManagerActivity" on path: DexPathList[[zip file "/data/app/com.didi.virtualapk-2/base.apk", zip file "/data/app/com.didi.virtualapk-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.didi.virtualapk-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.didi.virtualapk-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.didi.virtualapk-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.didi.virtualapk-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.didi.virtualapk-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.didi.virtualapk-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.didi.virtualapk-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.didi.virtualapk-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.didi.virtualapk-2/split_lib_slice_8_apk.apk", zip file "/data/app/com.didi.virtualapk-2/split_lib_slice_9_apk.apk", zip file "/storage/emulated/0/Test.apk"],nativeLibraryDirectories=[/data/app/com.didi.virtualapk-2/lib/arm, /vendor/lib, /system/lib, /data/data/com.didi.virtualapk/app_valibs]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 14 more
Suppressed: java.lang.ClassNotFoundException: com.didi.virtualapk.demo.aidl.BookManagerActivity
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 15 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

找不到插件so

已在插件中指定VA_IS_HAVE_LIB为true,插件apk中也有so文件。
插件apk:
libs
插件Activity加载so异常:
FATAL EXCEPTION: main
Process: com.pb.partybuildandroid, PID: 4354
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.pb.partybuildandroid-1/base.apk", zip file "/storage/emulated/0/document/live.apk"],nativeLibraryDirectories=[/data/app/com.pb.partybuildandroid-1/lib/arm, /system/fake-libs, /data/app/com.pb.partybuildandroid-1/base.apk!/lib/armeabi-v7a, /data/user/0/com.pb.partybuildandroid/app_valibs, /system/lib, /vendor/lib]]] couldn't find "libyuv.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:972)
at java.lang.System.loadLibrary(System.java:1530)

Caused by: android.view.InflateException: Binary XML file line #36Error inflating class <unknown>

定义NewActivity用来loadPlugin.之后通过
Intent intent = new Intent();
intent.setClassName("com.didi.virtualapk.demo", "com.didi.virtualapk.demo.MainActivity");
startActivity(intent);
跳转到ActivityA。点击OPEN ACTIVITY B.跳转后点击ActivityB。点击OPEN ACTIVITY C.跳转后点击ActivityC返回变为 ActivityA NewActivity,ActivityB.
此时点击icon进入发现问题
具体信息:

java.lang.RuntimeException:Unable to start activity ComponentInfo{com.virtual.zhangmen.virtualapk/com.virtual.zhangmen.virtualapk.NewActivity}:android.view.InflateException:Binary XML file line #36:Binary XML file line #36:Error inflating class
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
at android.app.ActivityThread.access$1100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7225)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by:android.view.InflateException:Binary XML file line #36:Binary XML file line #36:Error inflating class
at android.view.LayoutInflater.inflate(LayoutInflater.java:551)
at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
at android.view.LayoutInflater.inflate(LayoutInflater.java:380)
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:299)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
at com.virtual.zhangmen.virtualapk.NewActivity.onCreate(NewActivity.java:17)
at android.app.Activity.performCreate(Activity.java:6876)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
at com.didi.virtualapk.internal.VAInstrumentation.callActivityOnCreate(VAInstrumentation.java:141)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:158) 
at android.app.ActivityThread.main(ActivityThread.java:7225) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
Caused by:android.view.InflateException:Binary XML file line #36:Error inflating class
at android.view.LayoutInflater.createView(LayoutInflater.java:657)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:847)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.inflate(LayoutInflater.java:527)
at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:299) 
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246) 
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
at com.virtual.zhangmen.virtualapk.NewActivity.onCreate(NewActivity.java:17) 
at android.app.Activity.performCreate(Activity.java:6876) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
at com.didi.virtualapk.internal.VAInstrumentation.callActivityOnCreate(VAInstrumentation.java:141) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:158) 
at android.app.ActivityThread.main(ActivityThread.java:7225) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
Caused by:java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance(Native Method)
at android.view.LayoutInflater.createView(LayoutInflater.java:631)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:847) 
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:855) 
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:527) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:299) 
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246) 
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
at com.virtual.zhangmen.virtualapk.NewActivity.onCreate(NewActivity.java:17) 
at android.app.Activity.performCreate(Activity.java:6876) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
at com.didi.virtualapk.internal.VAInstrumentation.callActivityOnCreate(VAInstrumentation.java:141) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:158) 
at android.app.ActivityThread.main(ActivityThread.java:7225) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
Caused by:java.lang.UnsupportedOperationException:Can't convert to dimension: type=0x1 at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:668) at android.view.View.(View.java:4262) at android.widget.ImageView.(ImageView.java:150)
at android.widget.ImageButton.(ImageButton.java:85)
at android.widget.ImageButton.(ImageButton.java:81)
at android.support.v7.widget.Toolbar.ensureNavButtonView(Toolbar.java:990)
at android.support.v7.widget.Toolbar.setNavigationContentDescription(Toolbar.java:731)
at android.support.v7.widget.Toolbar.(Toolbar.java:271)
at android.support.v7.widget.Toolbar.(Toolbar.java:191)
at java.lang.reflect.Constructor.newInstance(Native Method) 
at android.view.LayoutInflater.createView(LayoutInflater.java:631) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:847) 
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:855) 
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:527) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:299) 
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246) 
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
at com.virtual.zhangmen.virtualapk.NewActivity.onCreate(NewActivity.java:17) 
at android.app.Activity.performCreate(Activity.java:6876) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
at com.didi.virtualapk.internal.VAInstrumentation.callActivityOnCreate(VAInstrumentation.java:141) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:158) 
at android.app.ActivityThread.main(ActivityThread.java:7225) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 

demo加载apk出问题了

07-05 09:24:08.505 22040-22040/com.didi.virtualapk E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.didi.virtualapk, PID: 22040
java.lang.IncompatibleClassChangeError: Structural change of android.support.v4.app.FragmentActivity is hazardous (/data/user/0/com.didi.virtualapk/app_dex/Test.dex at compile time, /data/app/com.didi.virtualapk-1/oat/arm/base.odex at runtime): Virtual method count off: 52 vs 40
Landroid/support/v4/app/FragmentActivity; (Compile time):
Static fields:
Ljava/lang/String; ALLOCATED_REQUEST_INDICIES_TAG
Ljava/lang/String; FRAGMENTS_TAG
I HONEYCOMB
I MAX_NUM_PENDING_FRAGMENT_ACTIVITY_RESULTS
I MSG_REALLY_STOPPED
I MSG_RESUME_PENDING
Ljava/lang/String; NEXT_CANDIDATE_REQUEST_INDEX_TAG
Ljava/lang/String; REQUEST_FRAGMENT_WHO_TAG
Ljava/lang/String; TAG
Instance fields:
Z mCreated
Landroid/support/v4/app/FragmentController; mFragments
Landroid/os/Handler; mHandler
Landroid/support/v4/media/session/MediaControllerCompat; mMediaController
I mNextCandidateRequestIndex
Z mOptionsMenuInvalidated
Landroid/support/v4/util/SparseArrayCompat; mPendingFragmentActivityResults
Z mReallyStopped
Z mRequestedPermissionsFromFragment
Z mResumed
Z mRetaining
Z mStopped
Direct methods:
()V
allocateRequestIndex(Landroid/support/v4/app/Fragment;)I
dumpViewHierarchy(Ljava/lang/String;Ljava/io/PrintWriter;Landroid/view/View;)V
viewToString(Landroid/view/View;)Ljava/lang/String;
Virtual methods:
dispatchFragmentsOnCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
doReallyStop(Z)V
dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
getLastCustomNonConfigurationInstance()Ljava/lang/Object;
getSupportFragmentManager()Landroid/support/v4/app/FragmentManager;
getSupportLoaderManager()Landroid/support/v4/app/LoaderManager;
getSupportMediaController()Landroid/support/v4/media/session/MediaControllerCompat;
onActivityResult(IILandroid/content/Intent;)V
onAttachFragment(Landroid/support/v4/app/Fragment;)V
onBackPressed()V
onConfigurationChanged(Landroid/content/res/Configuration;)V
onCreate(Landroid/os/Bundle;)V
onCreatePanelMenu(ILandroid/view/Menu;)Z
onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
onCreateView(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
onDestroy()V
onLowMemory()V
onMenuItemSelected(ILandroid/view/MenuItem;)Z
onMultiWindowModeChanged(Z)V
onNewIntent(Landroid/content/Intent;)V
onPanelClosed(ILandroid/view/Menu;)V
onPause()V
onPictureInPictureModeChanged(Z)V
onPostResume()V
onPrepareOptionsPanel(Landroid/view/View;Landroid/view/Menu;)Z
onPreparePanel(ILandroid/view/View;Landroid/view/Menu;)Z
onReallyStop()V
onRequestPermissionsResult(I[Ljava/lang/String;[I)V
onResume()V
onResumeFragments()V
onRetainCustomNonConfigurationInstance()Ljava/lang/Object;
onRetainNonConfigurationInstance()Ljava/lang/Object;
onSaveInstanceState(Landroid/os/Bundle;)V
onStart()V
onStateNotSaved()V
onStop()V
requestPermissionsFromFragment(Landroid/support/v4/app/Fragment;[Ljava/lang/String;I)V
setEnterSharedElementCallback(Landroid/support/v4/app/SharedElementCallback;)V
setExitSharedElementCallback(Landroid/support/v4/app/SharedElementCallback;)V
setSupportMediaController(Landroid/support/v4/media/session/MediaControllerCompat;)V
startActivityForResult(Landroid/content/Intent;I)V
startActivityForResult(Landroid/content/Intent;ILandroid/os/Bundle;)V
startActivityFromFragment(Landroid/support/v4/app/Fragment;Landroid/content/Intent;I)V
startActivityFromFragment(Landroid/support/v4/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;)V
startIntentSenderForResult(Landroid/content/IntentSender;ILandroid/content/Intent;III)V
startIntentSenderForResult(Landroid/content/IntentSender;ILandroid/content/Intent;IIILandroid/os/Bundle;)V
07-05 09:24:08.505 22040-22040/com.didi.virtualapk E/AndroidRuntime: startIntentSenderFromFragment(Landroid/support/v4/app/Fragment;Landroid/content/IntentSender;ILandroid/content/Intent;IIILandroid/os/Bundle;)V
supportFinishAfterTransition()V
supportInvalidateOptionsMenu()V
supportPostponeEnterTransition()V
supportStartPostponedEnterTransition()V
validateRequestPermissionsRequestCode(I)V
Landroid/support/v4/app/FragmentActivity; (Runtime):
Static fields:
Ljava/lang/String; FRAGMENTS_TAG
I HONEYCOMB
I MSG_REALLY_STOPPED
I MSG_RESUME_PENDING
Ljava/lang/String; TAG
Instance fields:
Landroid/support/v4/util/SimpleArrayMap; mAllLoaderManagers
Z mCheckedForLoaderManager
Landroid/support/v4/app/FragmentContainer; mContainer
Z mCreated
Landroid/support/v4/app/FragmentManagerImpl; mFragments
Landroid/os/Handler; mHandler
Landroid/support/v4/app/LoaderManagerImpl; mLoaderManager
Z mLoadersStarted
Z mOptionsMenuInvalidated
Z mReallyStopped
Z mResumed
Z mRetaining
Z mStopped
Direct methods:
()V
dumpViewHierarchy(Ljava/lang/String;Ljava/io/PrintWriter;Landroid/view/View;)V
viewToString(Landroid/view/View;)Ljava/lang/String;
Virtual methods:
doReallyStop(Z)V
dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
getLastCustomNonConfigurationInstance()Ljava/lang/Object;
getLoaderManager(Ljava/lang/String;ZZ)Landroid/support/v4/app/LoaderManagerImpl;
getSupportFragmentManager()Landroid/support/v4/app/FragmentManager;
getSupportLoaderManager()Landroid/support/v4/app/LoaderManager;
invalidateSupportFragment(Ljava/lang/String;)V
onActivityResult(IILandroid/content/Intent;)V
onAttachFragment(Landroid/support/v4/app/Fragment;)V
onBackPressed()V
onConfigurationChanged(Landroid/content/res/Configuration;)V
onCreate(Landroid/os/Bundle;)V
onCreatePanelMenu(ILandroid/view/Menu;)Z
onCreateView(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
onDestroy()V
onKeyDown(ILandroid/view/KeyEvent;)Z
onLowMemory()V
onMenuItemSelected(ILandroid/view/MenuItem;)Z
onNewIntent(Landroid/content/Intent;)V
onPanelClosed(ILandroid/view/Menu;)V
onPause()V
onPostResume()V
onPrepareOptionsPanel(Landroid/view/View;Landroid/view/Menu;)Z
onPreparePanel(ILandroid/view/View;Landroid/view/Menu;)Z
onReallyStop()V
onResume()V
onResumeFragments()V
onRetainCustomNonConfigurationInstance()Ljava/lang/Object;
onRetainNonConfigurationInstance()Ljava/lang/Object;
onSaveInstanceState(Landroid/os/Bundle;)V
onStart()V
onStop()V
setEnterSharedElementCallback(Landroid/support/v4/app/SharedElementCallback;)V
setExitSharedElementCallback(Landroid/support/v4/app/SharedElementCallback;)V
startActivityForResult(Landroid/content/Intent;I)V
startActivityFromFragment(Landroid/support/v4/app/Fragment;Landroid/content/Intent;I)V
supportFinishAfterTransition()V
supportInvalidateOptionsMenu()V
supportPostponeEnterTransition()V
supportStartPostponedEnterTransition()V
(declaration of 'com.leaves.mentalitydoctor.activity.BaseActivity' appears in /storage/emulated/0/Test.apk)
at java.lang.VMClassLoader.findLoadedClass(Native Method)
at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742)
at java.lang.ClassLoader.loadClass(ClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:367)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.Instrumentation.newActivity(Instrumentation.java:1086)
at com.didi.virtualapk.internal.VAInstrumentation.newActivity(VAInstrumentation.java:101)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2811)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2985)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6692)
07-05 09:24:08.505 22040-22040/com.didi.virtualapk E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)

加载插件的时候提示java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity

Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplBase.onCreate(AppCompatDelegateImplBase.java:122)
at android.support.v7.app.AppCompatDelegateImplV7.onCreate(AppCompatDelegateImplV7.java:146)
at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:59)
at com.didi.virtualapk.demo.aidl.BookManagerActivity.onCreate(BookManagerActivity.java:95)
at android.app.Activity.performCreate(Activity.java:6302)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at com.didi.virtualapk.internal.VAInstrumentation.callActivityOnCreate(VAInstrumentation.java:141)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2383)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490) 
at android.app.ActivityThread.access$900(ActivityThread.java:153) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1358) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5456) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:735) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 

Could not find com.didi.foundation:sdk:1.2.0

D:\download\VirtualAPK-master>gradlew clean iR
Incremental java compilation is an incubating feature.

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring project ':app'.

Could not resolve all dependencies for configuration ':app:_debugCompile'.
Could not find com.didi.foundation:sdk:1.2.0.
Searched in the following locations:
https://repo1.maven.org/maven2/com/didi/foundation/sdk/1.2.0/sdk-1.2.0.pom
https://repo1.maven.org/maven2/com/didi/foundation/sdk/1.2.0/sdk-1.2.0.jar
https://jcenter.bintray.com/com/didi/foundation/sdk/1.2.0/sdk-1.2.0.pom
https://jcenter.bintray.com/com/didi/foundation/sdk/1.2.0/sdk-1.2.0.jar
file:/D:/as/Android/sdk/extras/android/m2repository/com/didi/foundation/sdk/1.2.0/sdk-1.2.0.pom
file:/D:/as/Android/sdk/extras/android/m2repository/com/didi/foundation/sdk/1.2.0/sdk-1.2.0.jar
file:/D:/as/Android/sdk/extras/google/m2repository/com/didi/foundation/sdk/1.2.0/sdk-1.2.0.pom
file:/D:/as/Android/sdk/extras/google/m2repository/com/didi/foundation/sdk/1.2.0/sdk-1.2.0.jar

把PluginDemo中Manifest的activity和service的注册注释后打开插件发生crash

FATAL EXCEPTION: main
Process: com.didi.virtualapk, PID: 9606
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.view.View$DeclaredOnClickListener.onClick(View.java:4458)
at android.view.View.performClick(View.java:5204)
at android.view.View$PerformClick.run(View.java:21153)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at android.view.View$DeclaredOnClickListener.onClick(View.java:4453)
at android.view.View.performClick(View.java:5204) 
at android.view.View$PerformClick.run(View.java:21153) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.RuntimeException: can not find ComponentInfo{com.didi.virtualapk.demo/com.didi.virtualapk.demo.aidl.BookManagerActivity}
at com.didi.virtualapk.internal.a.c(ComponentsHandler.java:94)
at com.didi.virtualapk.internal.a.b(ComponentsHandler.java:84)
at com.didi.virtualapk.internal.VAInstrumentation.execStartActivity(VAInstrumentation.java:63)
at android.app.Activity.startActivityForResult(Activity.java:3930)
at android.app.Activity.startActivityForResult(Activity.java:3890)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:820)
at android.app.Activity.startActivity(Activity.java:4213)
at android.app.Activity.startActivity(Activity.java:4181)
at com.didi.virtualapk.MainActivity.onButtonClick(MainActivity.java:53)

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.