编程Programming
May 19

apktools工具反编译报错Exception in thread “main” brut.androlib.AndrolibException: Could not decode的处理

使用apktools反编译apk时,输入命令:apktool.bat  d test.apk
此时,可能会报bug:
     Exception in thread “main” brut.androlib.AndrolibException: Could not decode
C:\mysoft\反编译Android>cd apktool

C:\mysoft\反编译Android\apktool>apktool d itlife365.com.apk
I: Using Apktool 2.0.0 on com.wifi99.android.locationcheater.apk
I: Loading resource table...
Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file
        at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:52)
        at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:538)
        at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:63)
        at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:55)
        at brut.androlib.Androlib.getResTable(Androlib.java:64)
        at brut.androlib.ApkDecoder.setTargetSdkVersion(ApkDecoder.java:209)
        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:92)
        at brut.apktool.Main.cmdDecode(Main.java:165)
        at brut.apktool.Main.main(Main.java:81)
Caused by: java.io.IOException: Expected: 0x00000008, got: 0x00000000
        at brut.util.ExtDataInput.skipCheckShort(ExtDataInput.java:56)
        at brut.androlib.res.decoder.ARSCDecoder.readValue(ARSCDecoder.java:238)
        at brut.androlib.res.decoder.ARSCDecoder.readEntry(ARSCDecoder.java:201)
        at brut.androlib.res.decoder.ARSCDecoder.readConfig(ARSCDecoder.java:189)
        at brut.androlib.res.decoder.ARSCDecoder.readType(ARSCDecoder.java:157)
        at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:114)
        at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:78)
        at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:47)
        ... 8 more
这个问题,就是apktool.jar比较老旧的问题。
到官网下载最新版本的然后重新命名为apktools.jar
下载官网:需要翻墙
https://ibotpeaches.github.io/Apktool/install/
http://ibotpeaches.github.io/Apktool/
对应平台下载,更新即可。

 

重新下载后的编译如下:
C:\mysoft\反编译Android\apktool>apktool d itlife365.com.apk
Destination directory (C:\mysoft\反编译Android\apktool\com.wifi99.android.locationcheater) already exists. Use -f switch if you want to overwrite it.

C:\mysoft\反编译Android\apktool>apktool d itlife365.com.apk
I: Using Apktool 2.3.3 on com.wifi99.android.locationcheater.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
S: WARNING: Could not write to (C:\Users\play\AppData\Local\apktool\framework), using C:\Users\play\AppData\Local\Temp\ instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
I: Loading resource table from file: C:\Users\play\AppData\Local\Temp\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

C:\mysoft\反编译Android\apktool>

Jun 12

常见的Java会出现"unreachable code"错误的几个例子分享 ---begin
1. return关键字
Java代码 :
public void XXX() { 
    return
    System.out.println("itlife365.com"); 
}
2. throw关键字
Java代码:
public void XXX() throws Throwable{ 
    throw new Throwable(); 
    System.out.println("itlife365.com 可以让转运 kyrzy.com"); 
}
3. break关键字

Java代码: 
public void XXX() { 
    for(int i=0; i<10; i++) { 
        if(i==5) { 
            break
            System.out.println("itlife365.com 可以让转运 kyrzy.com"); 
        } 
    } 
}
4. continue关键字
Java代码: 
public void XXX() { 
    for(int i=0; i<10; i++) { 
        continue
        System.out.println("itlife365.com 可以让转运 kyrzy.com"); 
    } 
}

5. while(true)
Java代码: 
public static void XXX() { 
    while(true); 
    System.out.println("when begin itlife365.com"); 
}
why-java-unreachable-code-demo
常见的Java会出现"unreachable code"错误的几个例子分享 ---end

Jun 12

Java 中出现Unreachable code错误提示的含义begin by itlife365
Unreachable code 中文含义 不可达到的代码 说明错误的一行代码不会执行。
比如如下代码:
package com.itlife365.data.controller.servlet;

public class forDemo {
/**
* Unreachable code 测试
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
for (;;)
{
return;
System.out.println("Unreachable Code 不可达到的代码");
}
}
}
截图如下:


java unreachable code unreachablecode
更多例子:http://itlife365.com/blog/post/why-java-unreachable-code-demo.php
Java 中出现Unreachable code错误提示的含义end by itlife365

May 28
--begin by itlife365.com
PHP删除目录及目录下所有文件或删除指定文件经典代码收藏分享
  1. /**
  2.  * 删除目录及目录下所有文件或删除指定文件
  3.  * @param str $path   待删除目录路径
  4.  * @param int $delDir 是否删除目录,1或true删除目录,0或false则只删除文件保留目录(包含子目录)
  5.  * @return bool 返回删除状态
  6.  */
  7. function delDirAndFile($path, $delDir = FALSE) {
  8.     $handle = opendir($path);
  9.     if ($handle) {
  10.         while (false !== ( $item = readdir($handle) )) {
  11.             if ($item != "." && $item != "..")
  12.                 is_dir("$path/$item") ? delDirAndFile("$path/$item", $delDir) : unlink("$path/$item");
  13.         }
  14.         closedir($handle);
  15.         if ($delDir)
  16.             return rmdir($path);
  17.     }else {
  18.         if (file_exists($path)) {
  19.             return unlink($path);
  20.         } else {
  21.             return FALSE;
  22.         }
  23.     }
  24. }
  25. php dir del
  26. how-php-cascade-del-dir
--end by itlife365.com
Tags: , ,
May 28
--begin by itlife365
php的unlink()函数删除上级目录文件注意事项分享
unlink()删除目录无效吗?
新手比较容易犯的错误,unlink()函数默认的权限只在本目录及子目录,删除上级目录文件,需要改变当前位置,删除后再切换回来。 
如下示例

<?php
    $old = getcwd();  //当前目录
    chdir($path_to_file);   //切换到工作目录
    unlink($filename);   //删除文件
    chdir($old);  //切换到原目录   
?>
cause-php-unlink-supper-dir
---end by itlife365
Tags: ,
分页: 1/54 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]