小编mor*_*rya的帖子

如何在ProGuard中使用-dontwarn?

我正在使用android studio来构建调试和发布应用程序.当我构建调试/发布应用程序时

./gradlew assembleDebug

./gradlew assembleRelease
Run Code Online (Sandbox Code Playgroud)

这两个版本都是完美创建并运行的.显示调试或发布的相应对话框

现在我在build.gradle中添加了proguard详细信息:

signingConfigs {
    myConfig {
           storeFile file("keystore.jks")
           storePassword "abc123!"
           keyAlias "androidreleasekey"
           keyPassword "pqrs123!"
    }
}

buildTypes {
    release {
        runProguard true
        proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
        signingConfig signingConfigs.myConfig
    }
}
productFlavors {
    defaultFlavor {
        proguardFile 'proguard-rules.txt'
    }
}
Run Code Online (Sandbox Code Playgroud)

现在它在事件日志中显示错误为

警告:有7个未解析的类或接口引用.您可能需要添加缺少的库jar或更新其版本.如果您的代码在没有缺少类的情况下正常工作,则可以使用"-dontwarn"选项来禁止警告.(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)

警告:程序类成员有2个未解析的引用.您的输入类似乎不一致.您可能需要重新编译代码.

(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember):Flash销售:proguardDefaultFlavorRelease FAILED

如果我将runProguard选项设置为false然后运行它.

我有这些问题:

1)用runProguard = false发布apk是否可以?

2)如何在创建发布版本时使用dontwarn?

android proguard

33
推荐指数
1
解决办法
3万
查看次数

套接字EADDRINUSE(地址已在使用中)

我在做socket编程.我从以下链接参考:

http://examples.javacodegeeks.com/android/core/socket-core/android-socket-example/

以下是我的问题的详细信息.我为这个ServerThread(我的项目要求)创建了Android lib,这在测试应用程序中使用.

现在测试应用程序通过lib连接到此并执行此过程.第一次它完全正常,但如果我关闭并重新打开它崩溃异常:

"EADDRINUSE(地址已在使用中)"

也试过serverSocket.setReuseAddress(true)这个,但没有运气.

我的代码:

public void run() {
    Socket socket = null;
    try {
        serverSocket = new ServerSocket(SERVER_PORT);
        serverSocket.setReuseAddress(true);

    } catch (IOException e) {
        Log.e(TAG, "exception1= " + e.getMessage());
    }
    while (!Thread.currentThread().isInterrupted()) {
        try {

            socket = serverSocket.accept();
            Log.d(TAG, "server Connected.......!!!!");

            communicationThread = new CommunicationThread(
                    socket);
            commThread = new Thread(communicationThread);
            commThread.start();

        } catch (IOException e) {
            Log.e(TAG, "exception 2=" + e.getMessage());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我打电话给serverSocket.close()我,因为服务器套接字关闭我得到异常2.通信线程与前一个链接中给出的相同.

sockets android

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

koush AndroidAsync套接字示例

我在用

https://github.com/Thanhktm/socketio_android

通过引用

https://github.com/koush/AndroidAsync

但不知道如何运行和测试这个.

任何人都可以帮助创建和测试这个插槽通信.如果你有任何例子将是非常有帮助的.

android socket.io

7
推荐指数
0
解决办法
1665
查看次数

获取包含库的版本信息?

我创建了2个项目1是Lib,第2个是Test.从测试应用程序我传递上下文到Lib项目.

由于我在Lib中有上下文,我在Lib中使用了下面的代码

String version = this.mContext.getPackageManager().getPackageInfo(this.mContext.getPackageName(),0).versionName; Log.e("versionName",版本);

但这给了我测试应用程序的版本名称而不是lib.我应该如何获得Lib的应用程序版本名称和代码?

参考链接: 如何获取包含库的版本信息?

android

6
推荐指数
1
解决办法
2864
查看次数

不支持Android身份验证方案ntlm

我使用asynhttpClient进行基本身份验证

http://loopj.com/android-async-http/

这是looj lib ..

下面是我的代码:

usernameRandomPassword = userName +":"+密码;

            Log.d("username=",usernameRandomPassword);
            Log.d("url=",url);
            String authorization = "Basic " + Base64.encodeToString(usernameRandomPassword.getBytes("UTF-8"), Base64.NO_WRAP);
            httpClient.addHeader("Authorization",authorization);
            httpClient.addHeader("Content-type", "application/json");
            httpClient.setTimeout(20000);

            httpClient.get( url, new AsyncHttpResponseHandler() {

                    @Override
                    public void onStart() {
                        System.out.println("on satrt");
                        super.onStart();
                    }

                    @Override
                    public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

                        System.out.println("on onSuccess statusCode="+statusCode);
                        toastmessgae("onSuccess status code="+statusCode);
                        super.onSuccess(statusCode, headers, responseBody);
                    }

                    @Override
                    public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

                        System.out.println("on onFailure="+statusCode);
                        toastmessgae("onFailure status code="+statusCode);
                        super.onFailure(statusCode, headers, responseBody, error);

                    } …
Run Code Online (Sandbox Code Playgroud)

android

4
推荐指数
1
解决办法
8379
查看次数

标签 统计

android ×5

proguard ×1

socket.io ×1

sockets ×1