小编Luk*_*uth的帖子

proguard地狱 - 找不到引用的类

所以,我TRYING释放一些软件,但Proguard的是让我头疼.

当我尝试使用proguard导出时,我收到很多警告,即"找不到引用的类"

例如:

[2011-08-07 17:44:37 - GAME] Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
[2011-08-07 17:44:37 - GAME] Warning: there were 52 unresolved references to classes or interfaces.
[2011-08-07 17:44:37 - GAME]          You may need to specify additional library jars (using '-libraryjars'),
[2011-08-07 17:44:37 - GAME]          or perhaps the '-dontskipnonpubliclibraryclasses' option.
[2011-08-07 17:44:37 - GAME] java.io.IOException: Please correct the above warnings first.
[ 
Run Code Online (Sandbox Code Playgroud)

警告似乎与simpleframework有关,所以在我的proguard配置文件中我添加了以下内容:

-libraryjars pathtoprojecttolibs\simple-xml-2.4.jar
Run Code Online (Sandbox Code Playgroud)

pathtoprojecttolibs我的项目引用的jar的路径在哪里.

这没什么区别.

如果simpleframework引用javax我可以告诉proguard也忽略它吗?

有任何想法吗?

android proguard

125
推荐指数
3
解决办法
7万
查看次数

如何将构建时间戳写入apk

  1. 在Android Contacts包中进行一些更改
  2. 使用mm(make)命令构建此应用程序

因为我必须一次又一次地更改和构建这个应用程序,所以我想在它中添加一个构建时间戳Contacts.apk来检查我们在手机中运行它时的构建时间.

我们知道,当我们运行mm命令时,Android.mk将调用Contacts包中的(makefile).

现在,我们可以使用date-macro 获取构建时间.

但是我们如何将这个构建时间戳写入我们的应用程序可以在运行时读取的文件中?

有什么建议?

android makefile build

55
推荐指数
8
解决办法
2万
查看次数

将git选择的二进制文件覆盖为文本

我已经看到几个问题,询问如何让git将文本文件视为二进制文件,但还没有看到相反的情况:

如何更改git选择将文本文件视为二进制文件?我有一个文本文件,在某些配置字符串中,EOT和ETX用于分离部分配置参数.

例如,源代码包含如下行:

INPUT 'ScrollRemote[EOT]no[ETX]NumDown[EOT]0[ETX]CalcWidth[EOT]no[ETX]MaxWidth[EOT]80[ETX]FetchOnReposToEnd[EOT]yes[ETX].....'
Run Code Online (Sandbox Code Playgroud)

git binary text

55
推荐指数
2
解决办法
2万
查看次数

如何在用户键入时阻止EditText自行调整大小?

我有一个EditTextButton彼此相邻设置在同一水平线上.它看起来很棒,除非用户输入大量文本,EditText大小调整,并且Button被压扁.

我有两个EditText并且Button设置为layout_width="wrap_content". "fill_parent"弄乱了布局,如果我不需要,我不想使用绝对尺寸 - 它现在在横向和纵向看起来都很棒,我只是不想要EditText调整大小.

我的布局:

<TableLayout
    android:id="@+id/homelayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableRow>
        <TextView
            android:id="@+id/labelartist"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Find artists:" />
    </TableRow>
    <TableRow>
        <EditText
            android:id="@+id/entryartist"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="6"
            android:background="@android:drawable/editbox_background"
            android:editable="true"
            android:padding="5px"
            android:singleLine="true" />
        <Button
            android:id="@+id/okartist"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="10dip"
            android:layout_weight="1"
            android:text="Search" />
    </TableRow>

</TableLayout>
Run Code Online (Sandbox Code Playgroud)

layout android android-edittext

49
推荐指数
3
解决办法
6万
查看次数

无需连接到互联网即可获取本地IP地址

所以,我正在尝试在我的本地网络中获取我的机器的IP地址(应该是这样192.168.178.41).

我的第一个意图是使用这样的东西:

InetAddress.getLocalHost().getHostAddress();
Run Code Online (Sandbox Code Playgroud)

但它只会返回127.0.0.1,这是正确的,但对我没有多大帮助.

我四处搜索并找到了这个答案/sf/answers/166697891/,它只是创建了Socket一些网页连接(例如"google.com")并从套接字获取本地主机地址:

Socket s = new Socket("google.com", 80);
System.out.println(s.getLocalAddress().getHostAddress());
s.close();
Run Code Online (Sandbox Code Playgroud)

这适用于我的机器(它返回192.168.178.41),但它需要连接到互联网才能工作.由于我的应用程序不需要互联网连接,并且每次启动应用程序尝试连接到Google时可能看起来"可疑",我不喜欢使用它的想法.

所以,经过一些更多的研究后,我偶然发现了NetworkInterface-class,其中(有一些工作)也会返回所需的IP地址:

Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()){
    NetworkInterface current = interfaces.nextElement();
    System.out.println(current);
    if (!current.isUp() || current.isLoopback() || current.isVirtual()) continue;
    Enumeration<InetAddress> addresses = current.getInetAddresses();
    while (addresses.hasMoreElements()){
        InetAddress current_addr = addresses.nextElement();
        if (current_addr.isLoopbackAddress()) continue;
        System.out.println(current_addr.getHostAddress());
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的机器上,这将返回以下内容:

name:eth1 (eth1)
fe80:0:0:0:226:4aff:fe0d:592e%3
192.168.178.41
name:lo (lo)
Run Code Online (Sandbox Code Playgroud)

它找到我的网络接口并返回所需的IP,但我不确定其他地址(fe80:0:0:0:226:4aff:fe0d:592e%3)的含义.

此外,我还没有找到一种方法从返回的地址(通过使用isXX()-object的-methods InetAddress)过滤它,然后使用RegEx,我觉得非常"脏".

除了使用RegEx或互联网之外的任何其他想法?

java ip networking

34
推荐指数
4
解决办法
4万
查看次数

dompdf无法加载

我想让dompdf在内部服务器上运行.使用默认的config.inc.php设置,运行等效的演示'Hello Wolrd'脚本时,我得到以下内容:

Warning: require_once(/var/www/dompdf-master/lib/php-font-lib/classes/font.cls.php): failed to open stream: No such file or directory in /var/www/dompdf-master/dompdf_config.inc.php on line 335
Fatal error: require_once(): Failed opening required '/var/www/dompdf-master/lib/php-font-lib/classes/font.cls.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/dompdf-master/dompdf_config.inc.php on line 335 
Run Code Online (Sandbox Code Playgroud)

当我关闭时DOMPDF_ENABLE_AUTOLOAD,我不再收到此警告,但代码失败并显示以下内容:

Fatal error: Class 'DOMPDF' not found in /var/www/rfq/test.php on line 115
Run Code Online (Sandbox Code Playgroud)

以下是代码:

require_once("/var/www/dompdf-master/dompdf_config.inc.php");

$dompdf = new DOMPDF(); // this is the line that fails
$dompdf->load_html($quotehtml);
$dompdf->render();
$dompdf->stream("rfq".$_REQUEST['quoteid'].".pdf");
Run Code Online (Sandbox Code Playgroud)

这是Ubuntu 12.04,是补丁的最新版本,具有默认的Apache设置.

非常感谢.

php pdf include dompdf

28
推荐指数
2
解决办法
4万
查看次数

从后台工作线程修改Qt GUI

我在Qt工作,当我按下按钮GO时,我需要不断地将包发送到网络并使用我收到的信息修改界面.

问题是我有一个while(1)按钮,所以按钮永远不会完成,所以界面永远不会更新.我想在按钮中创建一个线程并将while(){}代码放在那里.

我的问题是如何从线程修改接口?(例如,如何从线程中修改textBox?

linux user-interface qt multithreading

19
推荐指数
1
解决办法
2万
查看次数

字符串连接真的那么慢吗?

我目前正在研究String concat选项以及它们对整体性能的惩罚.我的测试用例创造了令我心烦意乱的结果,我不确定我是否会忽略某些东西.

这是交易:"something"+"somethingElse"在java中执行(在编译时)StringBuilder每次完成时都会创建一个新的.

对于我的测试用例,我正在从我的HDD加载一个包含1661行示例数据的文件(经典的"Lorem Ipsum").这个问题不是关于I/O性能,而是关于不同字符串concat方法的性能.

public class InefficientStringConcat {

    public static void main(String[] agrs) throws Exception{
        // Get a file with example data:

        System.out.println("Starting benchmark");
        // Read an measure:
        for (int i = 0; i < 10; i++){
            BufferedReader in = new BufferedReader(
                    new InputStreamReader(new FileInputStream(new File("data.txt")))
            );

            long start = System.currentTimeMillis();
            // Un-comment method to test:
            //inefficientRead(in);
            //betterRead(in);
            long end = System.currentTimeMillis();
            System.out.println("Took "+(end-start)+"ms");

            in.close();
        }



    }

    public static String betterRead(BufferedReader …
Run Code Online (Sandbox Code Playgroud)

java string-concatenation performance-testing

19
推荐指数
2
解决办法
3726
查看次数

单例实例化

下面显示的是单例对象的创建.

public class Map_en_US extends mapTree {

    private static Map_en_US m_instance;

    private Map_en_US() {}

    static{
        m_instance = new Map_en_US();
        m_instance.init();
    }

    public static Map_en_US getInstance(){
        return m_instance;
    }

    @Override
    protected void init() {
        //some code;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是使用静态块进行实例化的原因是什么.我熟悉下面的单例实例化形式.

public static Map_en_US getInstance(){
    if(m_instance==null)
      m_instance = new Map_en_US();
}
Run Code Online (Sandbox Code Playgroud)

java singleton

18
推荐指数
1
解决办法
8454
查看次数

我可以在Android NDK上使用glu

我似乎无法在我的Android NDK项目中包含glu.h.

我正在尝试将现有的C++代码移植到NDK,它在一些地方使用glu(特别是gluErrorString).

OpenGLES没有胶水吗?

我有可以使用的端口吗?

如果不是,我可以删除对类似gluPerspective等事情的调用,但我该怎么办gluErrorString

android opengl-es android-ndk glu

18
推荐指数
1
解决办法
7138
查看次数