dodola / rocoofix Goto Github PK
View Code? Open in Web Editor NEWanother hotfix framework
License: MIT License
another hotfix framework
License: MIT License
不配置 gradle 中的minifyEnabled true无法生成patch.jar,配置后将生成的patch替换asset里的patch验证无效。反编译了一下Demo里asset里的patch是未混淆的,请问我这样的操作是否正确?
close
我的项目现在能生成 patch.jar 文件了!但是呢,patch.jar 里面的文件都没有内容;我现在是修改 类 HelloHack.java 文件的内容,然后就生成不了 patch.jar了!这..........我都搞了一个星期了,请问作者你能测通吗!帮忙解决一下,谢谢
如题
之前测试了nuwa 再android6.0上没有效果,因为application一启动就把所有的类都加载了。所以后面的补丁也不起作用。
gradle中加入productFlavors 无法生成patch.jar
@dodola 请问这个问题什么时间修复?
加载patch包成功,但没有效果
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
将debug下的debuggable设置成false,结果是一样的。
classloader思路的热更新思路都有类似问题,不知道有没人解决过
version1 代码:
public class DemoActivity7 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_7);
}
public void load(View view) {
RocooFix.initPathFromAssetsRuntime(this, "patch.jar");
}
public void start(View view) {
startActivity(new Intent(this, DemoActivity8.class));
}
}
public class DemoActivity8 extends Activity {
private TextView textView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_8);
textView = (TextView) findViewById(R.id.text);
textView.setText("456");
}
}
version2 代码:
Demo7 不变
Demo8:
public class DemoActivity8 extends Activity {
private TextView textView;
//
private TestInterface impl;
int count = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_8);
textView = (TextView) findViewById(R.id.text);
textView.setText("456");
impl = new TestInterfaceImpl();
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (count % 3 == 0) {
impl.test(Test.ONLINE);
} else if (count % 3 == 1) {
impl.test(Test.TEST);
} else {
impl.test(Test.PRE);
}
count++;
}
});
}
public static class TestInterfaceImpl implements TestInterface {
@Override
public void test(Test test) {
switch (test) {
case ONLINE:
System.out.println("test = [" + test + "online" + "]");
break;
case TEST:
System.out.println("test = [" + test + "TEST" + "]");
break;
case PRE:
System.out.println("test = [" + test + "PRE" + "]");
break;
}
}
}
}
新增枚举 Test 接口TestInterface
public enum Test {
ONLINE, TEST, PRE;
}
public interface TestInterface {
void test(Test test);
}
version 3:
public enum Test {
ONLINE, TEST, PRE , NEW_ADD;
}
新增了NEW_ADD , Demo8里面也新增了对NEW_ADD的处理。
把version2 与version1 差异生成的patch.jar 重命名为dex.jar。 把这个当成动态加载的一个模块
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
RocooFix.init(this);
RocooFix.initPathFromAssets(this,"dex.jar");
}
version3 与 version2 差异生成的patch.jar来当成动态修复的jar
Application中执行动态加载dex.jar,其中dex.jar包含一个枚举类 Test
Demo7中点击进行动态修复,在Test中新增一个NEW_ADD。
然后进入Demo8,点击TextView。就会出错.
报错信息如下
06-08 11:10:40.462 13187-13187/cn.eclicks.chelun D/#######: Malloc memory, size : 40
06-08 11:10:40.463 13187-13187/cn.eclicks.chelun D/#######: Read Memory to 0xffffffffae2b3890
06-08 11:10:40.463 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae289000
06-08 11:10:40.465 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae28900c
06-08 11:10:40.465 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38b4
06-08 11:10:40.465 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38ac
06-08 11:10:40.465 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b3890
06-08 11:10:40.465 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b3894
06-08 11:10:40.465 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b3898
06-08 11:10:40.465 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38a0
06-08 11:10:40.465 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38a4
06-08 11:10:40.465 13187-13187/cn.eclicks.chelun D/#######: Malloc memory, size : 144
06-08 11:10:40.466 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae288000
06-08 11:10:40.466 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38b0
06-08 11:10:40.469 13187-13187/cn.eclicks.chelun D/#######: Malloc memory, size : 40
06-08 11:10:40.469 13187-13187/cn.eclicks.chelun D/#######: Read Memory to 0xffffffffae2b38b8
06-08 11:10:40.469 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae080000
06-08 11:10:40.471 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae08000c
06-08 11:10:40.472 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38dc
06-08 11:10:40.472 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38d4
06-08 11:10:40.472 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38b8
06-08 11:10:40.472 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38bc
06-08 11:10:40.472 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38c0
06-08 11:10:40.472 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38c8
06-08 11:10:40.472 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38cc
06-08 11:10:40.472 13187-13187/cn.eclicks.chelun D/#######: Malloc memory, size : 144
06-08 11:10:40.472 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae07f000
06-08 11:10:40.472 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b38d8
[ 06-08 11:10:40.474 4221: 4748 D/ ]
file:device/hisi/common/liblights/lights.c, func:set_light_backlight, brightness=16
06-08 11:10:40.476 13187-13187/cn.eclicks.chelun D/#######: Malloc memory, size : 40
06-08 11:10:40.477 13187-13187/cn.eclicks.chelun D/#######: Read Memory to 0xffffffffae2b3930
06-08 11:10:40.477 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffadcab000
06-08 11:10:40.478 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffadcab00c
06-08 11:10:40.478 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b3954
06-08 11:10:40.479 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b394c
06-08 11:10:40.479 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b3930
06-08 11:10:40.479 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b3934
06-08 11:10:40.479 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b3938
06-08 11:10:40.479 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b3940
06-08 11:10:40.479 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b3944
06-08 11:10:40.479 13187-13187/cn.eclicks.chelun D/#######: Malloc memory, size : 144
06-08 11:10:40.479 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffacd96000
06-08 11:10:40.479 13187-13187/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffae2b3950
06-08 11:10:54.844 13187-13187/cn.eclicks.chelun D/AndroidRuntime: Shutting down VM
06-08 11:10:54.846 13187-13187/cn.eclicks.chelun E/AndroidRuntime: FATAL EXCEPTION: main
Process: cn.eclicks.chelun, PID: 13187
java.lang.ExceptionInInitializerError
at cn.eclicks.chelun.enums.Test.values(Test.java:9)
at cn.eclicks.chelun.DemoActivity8$2.<clinit>(DemoActivity8.java:55)
at cn.eclicks.chelun.DemoActivity8$TestInterfaceImpl.test(DemoActivity8.java:55)
at cn.eclicks.chelun.DemoActivity8$1.onClick(DemoActivity8.java:38)
at android.view.View.performClick(View.java:5264)
at android.view.View$PerformClick.run(View.java:21297)
at android.os.Handler.handleCallback(Handler.java:743)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5546)
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)
Caused by: java.lang.ArrayStoreException: cn.eclicks.chelun.enums.Test cannot be stored in an array of type cn.eclicks.chelun.enums.Test[]
at cn.eclicks.chelun.enums.Test.<clinit>(Test.java:9)
at cn.eclicks.chelun.enums.Test.values(Test.java:9)
at cn.eclicks.chelun.DemoActivity8$2.<clinit>(DemoActivity8.java:55)
at cn.eclicks.chelun.DemoActivity8$TestInterfaceImpl.test(DemoActivity8.java:55)
at cn.eclicks.chelun.DemoActivity8$1.onClick(DemoActivity8.java:38)
at android.view.View.performClick(View.java:5264)
at android.view.View$PerformClick.run(View.java:21297)
at android.os.Handler.handleCallback(Handler.java:743)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5546)
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)
把静态修复看成是 模块化的动态加载dex。 动态修复是修复模块dex的错误。
这样是不是可以理解为 若果模块dex里面有枚举 ,动态修复进行替换的时候 就会报错。
您好,pull了您的最新代码,但是通过gradle build命令无法生成patch补丁。
哥啥时候把说明补上啊,等着急用,这些天都在看这个,都没搞成,
一运行,就报06-01 18:08:31.770 16731-16731/com.dodola.rocoosample E/dalvikvm: Could not find class 'com.dodola.rocoo.Hack', referenced from method com.dodola.rocoosample.a.
你好,经过测试已经完成修复,就是有一点,关于打上CLASS_ISPREVERIFIED标志这种事,看了原理,需要向每个类中注入一段应用其它dex文件中类的代码。可是测试后反编译并没有看到有注入代码。我想问问这是什么原因呢?还有就是您的源码中buidsrc模块应该就是做这个事的,但是似乎集成的时候并没有用到。反编译也没有看到效果
作者你好:我在魅族5手机上使用静态加载的demo重启没有生效是什么原因,能否帮忙解决下
作者你好,为了防止打上标记,代码中要注入一段 System.out.println(Hack.class);可是按文档步骤来操作可以修复,反编译后没有这段代码,但是把源代码中的buildsrc模块导入就能注入这段代码,请问一下,这个buildsrc模块集成的时候
需要导入吗。
三星Note3 系统5.0
以下是执行runtimefix 时输出的log
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0x77f09734
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0x77f09738
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0x77f0973c
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0x77f09724
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0x77f071ac
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0x77f071a4
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0x77f07188
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0x77f0718c
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0x77f07190
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0x77f07198
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0x77f0719c
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Malloc memory, size : 144
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0xffffffffb427f000
06-02 16:48:25.269 30682-30682/cn.eclicks.chelun D/#######: Write Memory to 0x77f071a8
06-02 16:48:27.309 30682-30682/cn.eclicks.chelun A/libc: Fatal signal 4 (SIGILL), code 1, fault addr 0xb427f038 in tid 30682 (.eclicks.chelun)
06-02 16:48:27.419 295-295/? I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-02 16:48:27.419 295-295/? I/DEBUG: Build fingerprint: 'samsung/h3gduoszn/hlte:5.0/LRX21V/N9002ZNUGPA1:user/release-keys'
06-02 16:48:27.419 295-295/? I/DEBUG: Revision: '8'
06-02 16:48:27.419 295-295/? I/DEBUG: ABI: 'arm'
06-02 16:48:27.419 295-295/? I/DEBUG: pid: 30682, tid: 30682, name: .eclicks.chelun >>> cn.eclicks.chelun <<<
06-02 16:48:27.419 295-295/? I/DEBUG: signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0xb427f038
06-02 16:48:27.419 318-566/? D/Sensorhubs: readContextData: 1, 1, 7, -1
06-02 16:48:27.419 965-1118/? D/SensorHubManager: onGetSensorHubDataLocked: library(4) = 1, 1, 7, -1
06-02 16:48:27.419 965-965/? D/CAE: onGetSensorHubData(SensorHubParserProvider.java:87) - onGetSensorHubData Event [event buffer len :4], AP_WAKEUP
06-02 16:48:27.419 965-965/? I/CAE: parse(SensorHubParserProvider.java:166) - buffer size = 4
06-02 16:48:27.419 295-295/? I/DEBUG: r0 77f07180 r1 12d24440 r2 00000000 r3 00000000
06-02 16:48:27.419 295-295/? I/DEBUG: r4 000002b0 r5 70983f80 r6 12d24440 r7 12c33100
06-02 16:48:27.419 295-295/? I/DEBUG: r8 12c922c0 r9 b4e07800 sl 00000000 fp 12d24440
06-02 16:48:27.419 295-295/? I/DEBUG: ip afdba850 sp be81ed30 lr 75c32b99 pc b427f038 cpsr 000b0010
06-02 16:48:27.429 295-295/? I/DEBUG: backtrace:
06-02 16:48:27.429 295-295/? I/DEBUG: #00 pc 00000038 <unknown>
06-02 16:48:27.429 295-295/? I/DEBUG: #01 pc 01017b97 /system/framework/arm/boot.oat
06-02 16:48:27.429 965-965/? I/CAE: parse(SensorHubParserProvider.java:177) - 1, 1, 7, -1,
06-02 16:48:27.429 965-965/? D/CAE: display(ContextProvider.java:365) - ================= AUTO_ROTATION =================
06-02 16:48:27.429 965-965/? I/CAE: display(ContextProvider.java:381) - Angle=[-1]
06-02 16:48:27.429 965-965/? D/SContextService: updateSContext() : event = Auto Rotation
06-02 16:48:27.869 965-1485/? W/ActivityManager: getTasks: caller 10354 does not hold GET_TASKS; limiting output
06-02 16:48:27.879 965-30832/? W/ActivityManager: Force finishing activity cn.eclicks.chelun/.DemoActivity8
06-02 16:48:27.889 295-295/? I/DEBUG: Tombstone written to: /data/tombstones/tombstone_04
[ 06-02 16:48:27.889 295: 295 E/ ]
ro.product_ship = true
[ 06-02 16:48:27.889 295: 295 E/ ]
ro.debug_level = 0x4f4c
06-02 16:48:27.889 2132-2132/? E/audit: type=1701 msg=audit(1464857307.889:212): auid=4294967295 uid=10512 gid=10512 ses=4294967295 subj=u:r:untrusted_app:s0 pid=30682 comm=".eclicks.chelun" reason="memory violation" sig=4
06-02 16:48:27.889 965-1062/? I/BootReceiver: Copying /data/tombstones/tombstone_04 to DropBox (SYSTEM_TOMBSTONE)
06-02 16:48:27.909 965-30832/? W/ActivityManager: Force finishing activity cn.eclicks.chelun/.DemoActivity7
06-02 16:48:27.909 965-30832/? D/FocusedStackFrame: Set to : 0
06-02 16:48:27.929 965-30837/? E/android.os.Debug: ro.product_ship = true
06-02 16:48:27.929 965-30837/? E/android.os.Debug: ro.debug_level = 0x4f4c
06-02 16:48:27.929 965-1325/? I/WindowState: WIN DEATH: Window{d1f97d3 u0 cn.eclicks.chelun/cn.eclicks.chelun.DemoActivity7}
06-02 16:48:27.939 965-1064/? D/StatusBarManagerService: manageDisableList userId=0 what=0x0 pkg=WindowManager.LayoutParams
06-02 16:48:27.949 965-1066/? D/PointerIcon: setMouseIconStyle1 pointerType: 1001iconType:101 flag:0
06-02 16:48:27.949 965-1066/? D/PointerIcon: setMouseCustomIcon IconType is same.101
06-02 16:48:27.949 965-1066/? D/PointerIcon: setHoveringSpenIconStyle1 pointerType: 10001iconType:1 flag:0
06-02 16:48:27.949 965-1066/? D/PointerIcon: setHoveringSpenCustomIcon IconType is same.1
06-02 16:48:27.949 965-1638/? I/ActivityManager: Process cn.eclicks.chelun (pid 30682)(adj 0) has died(91,867)
06-02 16:48:27.949 965-1638/? D/ActivityManager: isAutoRunBlockedApp:: cn.eclicks.chelun, Auto Run ON
06-02 16:48:27.949 1479-1479/? D/SurfaceWidgetView: destroyHardwareResources():204262286
06-02 16:48:27.959 1479-1479/? D/Launcher: onRestart, Launcher: 368249614
06-02 16:48:27.969 965-1526/? D/ActivityManager: startService callerProcessName:com.qihoo.appstore, calleePkgName: com.qihoo.appstore
06-02 16:48:27.969 1479-1479/? D/Launcher: onStart, Launcher: 368249614
06-02 16:48:27.969 1479-1479/? D/Launcher.HomeView: onStart
06-02 16:48:27.969 1479-1479/? D/Launcher: onResume, Launcher: 368249614
06-02 16:48:27.969 965-1526/? D/ActivityManager: caller:android.app.ApplicationThreadProxy@29867d04, r.packageName :com.qihoo.appstore
06-02 16:48:27.969 965-1581/? D/SettingsProvider: name = kids_home_mode
06-02 16:48:27.969 965-1581/? D/SettingsProvider: edmUri: content://com.sec.knox.provider/RestrictionPolicy3
06-02 16:48:27.969 965-1581/? D/SettingsProvider: projectionArgs: isSettingsChangesAllowed
06-02 16:48:27.969 965-1581/? D/SettingsProvider: selectionArgs: false
06-02 16:48:27.969 965-1581/? D/SettingsProvider: selectionArgs: 10051
06-02 16:48:27.969 965-1581/? D/SecContentProvider: uri = 17 selection = isSettingsChangesAllowed
06-02 16:48:27.969 965-1581/? D/SettingsProvider: ret = -1
06-02 16:48:27.969 1479-1479/? D/Launcher.HomeView: onResume
06-02 16:48:27.969 965-3679/? D/ConnectivityService: returning getNetworkInfo(networkType - 1) :[type: WIFI[] - WIFI, state: CONNECTED/CONNECTED, reason: (unspecified), extra: "chelun", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]
06-02 16:48:27.979 260-260/? I/SurfaceFlinger: id=373 createSurf (49x49),1 flag=4, dhelun
06-02 16:48:27.979 330-330/? I/Zygote: Process 30682 exited due to signal (4)
06-02 16:48:27.989 965-1179/? I/OpenGLRenderer: Initialized EGL, version 1.4
06-02 16:48:27.999 1479-1479/? D/Launcher: Launcher::setSystemUiTransparency(): getSystemUiVisibility() after setting = 40000000
06-02 16:48:27.999 965-1179/? I/OpenGLRenderer: HWUI protection enabled for context , &this =0xa0888f88 ,&mEglDisplay = 1 , &mEglConfig = 8
06-02 16:48:27.999 1479-1479/? D/MenuAppsGridFragment: onResume
06-02 16:48:28.009 2058-9510/? D/SurfaceWidgetClient$ISurfaceWidgetStub: [237392/8] Surface widget visibility changed visibility = true on instance = 1
06-02 16:48:28.009 2058-2195/? D/SurfaceWidget.Renderer: [237392/8] SurfaceWidget drawing first frame
06-02 16:48:28.009 2058-2195/? D/cmaweather: [Cmaweather J]>>> WR:641 [0:0] onGLDraw : BG texture = 42
06-02 16:48:28.009 965-981/? D/ActivityManager: handle home activity for 0
06-02 16:48:28.009 965-981/? I/WallpaperManagerService: switchPersonaWallpaper is called for personaId-0
06-02 16:48:28.009 965-981/? D/KnoxTimeoutHandler: post home show event for user 0
06-02 16:48:28.009 965-981/? D/ActivityManager: post active user change for 0
06-02 16:48:28.009 965-981/? D/KnoxTimeoutHandler: postActiveUserChange for user 0
06-02 16:48:28.009 965-965/? D/WallpaperManagerService: force update = false; persona id = 0; current user =0; current persona = 0
06-02 16:48:28.009 965-965/? D/KnoxTimeoutHandler: handleHomeShow for 0 and current 0
06-02 16:48:28.009 965-965/? D/KnoxTimeoutHandler: handleActiveUserChange for user 0
06-02 16:48:28.019 260-260/? I/SurfaceFlinger: id=374 createSurf (1080x1920),1 flag=4, Mauncher
06-02 16:48:28.039 13273-13273/? I/MultiWindowTrayService: mHomeResumeReceiver : onReceive
06-02 16:48:28.039 965-1059/? D/ActivityManager: isAutoRunBlockedApp:: com.samsung.android.sm, Auto Run ON
06-02 16:48:28.039 13273-13273/? I/Sally Service: removeWindow window
06-02 16:48:28.049 13941-13941/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.startService:2064 android.content.ContextWrapper.startService:533 android.content.ContextWrapper.startService:533 com.samsung.android.sm.common.SmartManagerReceiver.b:199 com.samsung.android.sm.common.SmartManagerReceiver.onReceive:93
06-02 16:48:28.049 965-1656/? D/ActivityManager: startService callerProcessName:com.samsung.android.sm, calleePkgName: com.samsung.android.sm
06-02 16:48:28.049 965-1582/? W/NetworkStats: getDevHistory: NetworkStatsHistory: bucketDuration=3600000
06-02 16:48:28.049 965-1582/? W/NetworkStats: getXtHistory: NetworkStatsHistory: bucketDuration=3600000
06-02 16:48:28.049 965-1582/? W/NetworkStats: getDev2History: NetworkStatsHistory: bucketDuration=3600000
06-02 16:48:28.049 965-1656/? D/ActivityManager: caller:android.app.ApplicationThreadProxy@242ad67a, r.packageName :com.samsung.android.sm
06-02 16:48:28.059 965-1638/? D/ActivityManager: isAutoRunBlockedApp:: com.samsung.android.sm, Auto Run ON
06-02 16:48:28.059 965-1223/? W/NetworkStats: getDevHistory: NetworkStatsHistory: bucketDuration=3600000
06-02 16:48:28.059 965-1223/? W/NetworkStats: getXtHistory: NetworkStatsHistory: bucketDuration=3600000
06-02 16:48:28.059 965-1223/? W/NetworkStats: getDev2History: NetworkStatsHistory: bucketDuration=3600000
06-02 16:48:28.069 1479-1479/? D/SurfaceWidgetView: getHardwareLayer being called directly
06-02 16:48:28.079 965-965/? D/CrashAnrDetector: Build: samsung/h3gduoszn/hlte:5.0/LRX21V/N9002ZNUGPA1:user/release-keys
Hardware: MSM8974
Revision: 8
Bootloader: N9002ZNUGPA1
Radio: unknown
Kernel: Linux version 3.4.0-6343372 (dpi@SWHD7412) (gcc version 4.8 (GCC) ) #1 SMP PREEMPT Tue Jan 5 21:48:31 KST 2016
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/h3gduoszn/hlte:5.0/LRX21V/N9002ZNUGPA1:user/release-keys'
Revision: '8'
ABI: 'arm'
pid: 30682, tid: 30682, name: .eclicks.chelun >>> cn.eclicks.chelun <<<
signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0xb427f038
r0 77f07180 r1 12d24440 r2 00000000 r3 00000000
r4 000002b0 r5 70983f80 r6 12d24440 r7 12c33100
r8 12c922c0 r9 b4e07800 sl 00000000 fp 12d24440
ip afdba850 sp be81ed30 lr 75c32b99 pc b427f038 cpsr 000b0010
d0 0000000000000003 d1 00000011000000da
d2 0000000000000000 d3 0000000400000068
d4 4000140000000000 d5 0106014b01000008
d6 4000140000000000 d7 010304da01000008
d8 3e8000003f400000 d9 0000000000000000
d10 0000000000000000 d11 0000000000000000
d12 0000000000000000 d13 0000000000000000
d14 0000000000000000 d15 0000000000000000
d16 00650067fffafafa d17 0000006700000072
d18 002e00640069006f d19 002e007000700061
d20 0074006300410049 d21 0074006900760069
d22 006e0061004d0079 d23 0072006500670061
d24 0000000000000000 d25 0000000000000000
d26 3ff0000000000000 d27 0000000000000000
d28 3ff0000000000000 d29 0000000000000000
d30 0000000000000000 d31 0000000000000000
scr 80000013
backtrace:
#00 pc 00000038 <unknown>
#01 pc 01017b97 /system/framework/arm/boot.oat
stack:
be81ecb0 722ff848 /data/dalvik-cache/arm/system@framework@boot.art
be81ecb4 70982f78 /data/dalvik-cache/arm/system@framework@boot.art
be81ecb8 00000006
be81ecbc 12dd3600 /dev/ashmem/dalvik-main space (deleted)
be81ecc0 12d24440 /dev/ashmem/dalvik-main space (deleted)
be81ecc4 12d78190 /dev/ashmem/dalvik-main space (deleted)
be81ecc8 12dd3740 /dev/ashmem/dalvik-main space (deleted)
be81eccc 75c307d1 /system/framework/arm/boot.oat
be81ecd0 70982f78 /data/dalvik-cache/arm/system@framework@boot.art
be81ecd4 12d24440 /dev/ashmem/dalvik-main space (deleted)
be81ecd8 ffffffff
be81ecdc 00000000
be81ece0 ff00a5c4
be81ece4 00000000
be81ece8 ff00a5c4
be81ecec fffafafa
be81ecf0 70bb1590 /data/dalvik-cache/arm/system@framework@boot.art
be81ecf4 70b716b0 /data/dalvik-cache/arm/system@framework@boot.art
be81ecf8 00000000
be81ecfc 00000000
be81ed00 70b716b0 /data/dalvik-cache/arm/system@framework@boot.art
be81ed04 12d24440 /dev/ashmem/dalvik-main space (deleted)
be81ed08 12dd3600 /dev/ashmem/dalvik-main space (deleted)
be81ed0c 7097b398 /data/dalvik-cache/arm/system@framework@boot.art
be81ed10 70981fb8 /data/dalvik-cache/arm/system@framework@boot.art
be81ed14 12dd3620 /dev/ashmem/dalvik-main space (deleted)
be81ed18 7f09008a
be81ed1c 75655223 /system/framework/arm/boot.oat
be81ed20 70983f80 /data/dalvik-cache/arm/system@framework@boot.art
be81ed24 12d24440 /dev/ashmem/dalvik-main space (deleted)
be81ed28 12c33100 /dev/ashmem/dalvik-main space (deleted)
be81ed2c 75c32b75 /system/framework/arm/boot.oat
#00 be81ed30 70983f80 /data/dalvik-cache/arm/system@framework@boot.art
........ ........
#01 be81ed30 70983f80 /data/dalvik-cache/arm/system@framework@boot.art
be81ed34 12c96140 /dev/ashmem/dalvik-main space (deleted)
be81ed38 12dce3d0 /dev/ashmem/dalvik-main space (deleted)
be81ed3c 12c922c0 /dev/ashmem/dalvik-main space (deleted)
be81ed40 12dd35c0 /dev/ashmem/dalvik-main space (deleted)
be81ed44 12d24440 /dev/ashmem/dalvi
06-02 16:48:28.079 965-965/? D/CrashAnrDetector: processName:cn.eclicks.chelun
06-02 16:48:28.079 965-965/? D/CrashAnrDetector: broadcastEvent : cn.eclicks.chelun SYSTEM_TOMBSTONE
06-02 16:48:28.079 965-965/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1713 com.android.server.analytics.data.collection.application.CrashAnrDetector.broadcastEvent:296 com.android.server.analytics.data.collection.application.CrashAnrDetector.processDropBoxEntry:254 com.android.server.analytics.data.collection.application.CrashAnrDetector.access$100:60 com.android.server.analytics.data.collection.application.CrashAnrDetector$1.onReceive:102
06-02 16:48:28.079 2187-2187/? W/Settings: Setting airplane_mode_on has moved from android.provider.Settings.System to android.provider.Settings.Global, returning read-only value.
06-02 16:48:28.089 965-1656/? D/ActivityManager: isAutoRunBlockedApp:: com.sec.android.gallery3d, Auto Run ON
06-02 16:48:28.089 25625-25625/? D/GalleryCacheReady: Receive : home resume
----------------------------问题一----------------------------------------------
Error:(21, 0) No such property: includePackage for class: com.dodola.rocoofix.RocooFixExtension_Decorated Open File
----------------------------问题二--------------------------------------
Error:Gradle: Execution failed for task ':mshop:transformClassesWithDexForDebug'.
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_71\bin\java.exe'' finished with non-zero exit value2
构建的时候总是有各种问题,我们的项目结构是一个A library module依赖 B library module ,B再依赖app这个module。 而且项目中用到的jar包是放在libs里面的,不是compile xxx方式。构建的时候总是出问题。
因为是个人项目,所以没有开启混淆。发现这种情况下没有办法生成相应mapping文件和补丁文件。很奇怪,使用这个之后项目就无法调试了。尝试过关闭enable就可以了,但再次尝试依然无法调试程序。
混淆签名后在4.4中可以 在6.0.1中就不行了 有遇到相同问题的吗 怎么解决呀 我用的是nexus5
06-14 10:04:18.951 22434-22434/com.dodola.rocoosample.runtimefix E/Rocoo: replaceMethod
java.lang.IllegalStateException: Cannot create backup method from :: public java.lang.String com.dodola.rocoosample.HelloHack.showHello()
at com.lody.legend.art.ArtMethod.backup(ArtMethod.java:133)
at com.lody.legend.HookManager.hookMethodArt(HookManager.java:197)
at com.lody.legend.HookManager.hookMethod(HookManager.java:135)
at com.dodola.rocoofix.RocooFix.replaceMethod(RocooFix.java:626)
at com.dodola.rocoofix.RocooFix.fixClass(RocooFix.java:589)
at com.dodola.rocoofix.RocooFix.applyPatchRuntime(RocooFix.java:565)
at com.dodola.rocoofix.RocooFix.initPathFromAssetsRuntime(RocooFix.java:513)
at com.dodola.rocoosample.runtimefix.MainActivity$1.onClick(MainActivity.java:24)
at android.view.View.performClick(View.java:5199)
at android.view.View$PerformClick.run(View.java:21155)
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:5415)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:725)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:615)
Error:Execution failed for task ':app:rocooJarBeforeDexDebug'.
> /Users/zhangwenhai/work/app/build/intermediates/bundles/debug/instant-run/AndroidManifest.xml (No such file or directory)
作者大人:我在联想一款手机版本android4.4.4 运行静态加载报错Class ref in pre-verified class resoved to unexpected implementation
手动执行applyXXXXPatch才能再次生成hash,但是点击run app又会再次清空hash.txt.
目前使用的版本是'com.dodola:rocoofix:1.1'
05-27 18:40:29.911 32446-32446/com.dodola.rocoosample E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.dodola.rocoosample, PID: 32446
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/dodola/rocoo/Hack;
at com.dodola.rocoosample.MainActivity.(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.Class.newInstance(Class.java:1650)
at android.app.Instrumentation.newActivity(Instrumentation.java)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
at android.app.ActivityThread.access$900(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
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)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.dodola.rocoo.Hack" on path: DexPathList[[zip file "/data/app/com.dodola.rocoosample-2/base.apk"],nativeLibraryDirectories=[/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 com.dodola.rocoosample.MainActivity.(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.Class.newInstance(Class.java:1650)
at android.app.Instrumentation.newActivity(Instrumentation.java)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
at android.app.ActivityThread.access$900(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
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)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
Suppressed: java.lang.ClassNotFoundException: com.dodola.rocoo.Hack
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)
... 16 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
我看了提问题都是patch.jar没有生成, 我也试了好多次, 作者大人能解答一下吗?
目前热修复的技术最大的问题就是兼容性问题,不同系统版本的兼容性,补丁代码的兼容性,希望大家加入这个群一起交流经验。更希望作者也加进来:)
你好,昨天刚下载的代码,遇到上面问题,请问该怎么解决呢?
05-28 19:19:31.299 20849-20849/? E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.ExceptionInInitializerError
at com.lody.legend.b.a.(Unknown Source)
at com.lody.legend.b.a.a(Unknown Source)
at com.lody.legend.a.b(Unknown Source)
at com.lody.legend.a.a(Unknown Source)
at com.a.a.a.a(Unknown Source)
at com.a.a.a.d(Unknown Source)
at com.a.a.a.c(Unknown Source)
at com.hotfix.hotfixdemo.b.onClick(Unknown Source)
at android.view.View.performClick(View.java:4223)
at android.view.View$PerformClick.run(View.java:17275)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.UnsatisfiedLinkError: unknown failure
at java.lang.Runtime.loadLibrary(Runtime.java:370)
at java.lang.System.loadLibrary(System.java:535)
at com.lody.legend.utility.LegendNative.(Unknown Source)
at com.lody.legend.b.a.(Unknown Source)
at com.lody.legend.b.a.a(Unknown Source)
at com.lody.legend.a.b(Unknown Source)
at com.lody.legend.a.a(Unknown Source)
at com.a.a.a.a(Unknown Source)
at com.a.a.a.d(Unknown Source)
at com.a.a.a.c(Unknown Source)
at com.hotfix.hotfixdemo.b.onClick(Unknown Source)
at android.view.View.performClick(View.java:4223)
at android.view.View$PerformClick.run(View.java:17275)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
at dalvik.system.NativeStart.main(Native Method)
06-01 17:28:55.675 1470-1488/? D/dalvikvm: Debugger has detached; object registry had 1 entries
06-01 17:28:55.705 1470-1470/? E/dalvikvm: ERROR: unrecognized magic number (50 4b 03 04)
06-01 17:28:55.705 1470-1470/? E/dalvikvm: Error with header for /data/data/com.dodola.rocoosample/files/hotfix/rocoo.dex
根据说明进行配置后, 提示找不到Rocoofix
由于文件分隔符采用硬编码的"/", window 系统用户由于使的是 "" 文件分隔符,从而一些判断方法例如 isIncluded,isExcluded 方法判断有误,最终导致文件没有生成。希望作者看到能修复下。
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Translation has been interrupted
根据网上的说法也设置了 multiDexEnabled true但是也不好使
只生成了hash,txt ,其他的都没有生成,请问这个怎么处理啊。目前这个是不是还在优化中,还不是很稳定。
参照教程,碰到如下问题:
教程里给的配置并不能正常使用,后面拷贝rocoo项目直接引用才能正常编译
Error:Execution failed for task ':rocoofixdemo:rocooJarBeforeDexDebug'.
D:\Program\Android\Demos\HotFixDemo\rocoofixdemo\build\intermediates\bundles\debug\instant-run\AndroidManifest.xml (系统找不到指定的文件。)
手动复制Manifest文件才解决
如标题,没有生成patch.jar文件
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.dodola.rocoo.Hack" on path: DexPathList[[zip file "/data/app/com.dodola.rocoosample-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
05-30 11:29:30.565 30290-30290/? E/dalvikvm: Could not find class 'com.dodola.rocoo.Hack', referenced from method com.hotfix.hotfixdemo.c.
05-30 11:29:30.570 30290-30290/? E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.ExceptionInInitializerError
at com.hotfix.hotfixdemo.MyApplication.(Unknown Source)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1319)
at android.app.Instrumentation.newApplication(Instrumentation.java:997)
at android.app.Instrumentation.newApplication(Instrumentation.java:982)
at android.app.LoadedApk.makeApplication(LoadedApk.java:496)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4201)
at android.app.ActivityThread.access$1300(ActivityThread.java:140)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1287)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoClassDefFoundError: com.dodola.rocoo.Hack
at com.hotfix.hotfixdemo.c.(Unknown Source)
at com.hotfix.hotfixdemo.c.(Unknown Source)
at com.hotfix.hotfixdemo.MyApplication.(Unknown Source)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1319)
at android.app.Instrumentation.newApplication(Instrumentation.java:997)
at android.app.Instrumentation.newApplication(Instrumentation.java:982)
at android.app.LoadedApk.makeApplication(LoadedApk.java:496)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4201)
at android.app.ActivityThread.access$1300(ActivityThread.java:140)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1287)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
at dalvik.system.NativeStart.main(Native Method)
06-06 19:36:17.650 17769-17769/com.hotfix.hotfixdemo E/dalvikvm: Could not find class 'com.dodola.rocoo.Hack', referenced from method com.android.tools.fd.runtime.BootstrapApplication.
06-06 19:36:17.660 17769-17769/com.hotfix.hotfixdemo E/dalvikvm: Could not find class 'com.dodola.rocoo.Hack', referenced from method com.android.tools.fd.runtime.BootstrapApplication$1.
06-06 19:36:17.680 17769-17769/com.hotfix.hotfixdemo E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.ExceptionInInitializerError
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1319)
at android.app.Instrumentation.newApplication(Instrumentation.java:997)
at android.app.Instrumentation.newApplication(Instrumentation.java:982)
at android.app.LoadedApk.makeApplication(LoadedApk.java:496)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4201)
at android.app.ActivityThread.access$1300(ActivityThread.java:140)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1287)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoClassDefFoundError: com.dodola.rocoo.Hack
at com.android.tools.fd.runtime.BootstrapApplication$1.(BootstrapApplication.java:69)
at com.android.tools.fd.runtime.BootstrapApplication.(BootstrapApplication.java:68)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1319)
at android.app.Instrumentation.newApplication(Instrumentation.java:997)
at android.app.Instrumentation.newApplication(Instrumentation.java:982)
at android.app.LoadedApk.makeApplication(LoadedApk.java:496)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4201)
at android.app.ActivityThread.access$1300(ActivityThread.java:140)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1287)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
at dalvik.system.NativeStart.main(Native Method)
项目的根build.gradle添加
maven {
url "http://dl.bintray.com/dodola/maven"
}
classpath 'com.dodola:rocoofix:1.0'
之后。Sync now时,出现了Error:Connection refused: connect的错误
按照demo运行没生成path.jar补丁啊!
@dodola 看了你的最新代码,把rocoo_fix {
// preVersionPath = '1'//注意:此项属性只在需要制作补丁的时候才需开启!!如果不需要制作补丁则需要去掉此项
enable = true
} 这段都删了。
现在使用最新代码运行,rocoofix文件夹都生成不了,更不用说jar包了。
1.因为我看demo,也是需要手动修改gradle的配置,这样怎么通过不发版来修bug呢?
2.patch文件是提前写好的吗?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.