小编san*_*ane的帖子

Pro-guard 混淆在 android studio 中不起作用

使用最新的 Android Studio 并更新了所有平台(OsX):

构建.gradle:

android {
compileSdkVersion 26
defaultConfig {
    applicationId "com.xxxxxxlxxxxxx.apps.firebase"
    minSdkVersion 16
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.firebase:firebase-jobdispatcher:0.8.5'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
Run Code Online (Sandbox Code Playgroud)

Proguard-rules.pro :

-keep public class OpenSource
Run Code Online (Sandbox Code Playgroud)

如您所见,proguard 已启用,并且还给出了仅保留OpenSource类的规则。仍然在我构建它的 apk / 签名 apk 时。并在 apk 文件上使用以下命令:

  1. 解压apk
  2. sh Dex2jar.sh classes.dex
  3. 并通过使用 …

android proguard

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

HashSet行为令人惊讶

我搜索了这个stackoverflow,发现了这种情况的无关线程.我也尝试了自己,并将继续尝试,直到解决方案.但如果有人告诉我,如果我在代码中犯了任何错误,那将会很好.


我有一个HashSet这样我可以防止重复的字符串被添加到它.如果HashSet是添加,那么它必须是唯一的字符串.


我的班级声明是:

public List<String> ContactsList;
public List<String> ContactsNumbersList;
Run Code Online (Sandbox Code Playgroud)

我的代码通过获取帮助来获取联系人并将其添加到这两个列表中,HashSet以便我保留重复的数字:

    ContactsList = new ArrayList<String>();
    ContactsNumbersList = new ArrayList<String>();

    HashSet<String> normalizedNumbersAlreadyFound = new HashSet<>();

    // Contacts Database queries

    Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[] {ContactsContract.CommonDataKinds.Phone._ID, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER}, null, null,  ContactsContract.CommonDataKinds.Phone.SORT_KEY_PRIMARY +" ASC");


    while (cursor.moveToNext())
    {
        String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
        String phoneNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

        if (normalizedNumbersAlreadyFound.add(phoneNumber))
        {
            phoneNumber = phoneNumber.replace("-","");
            phoneNumber = phoneNumber.replace(" ","");
            phoneNumber = phoneNumber.replace("(","");
            phoneNumber = phoneNumber.replace(")","");
            ContactsList.add(name);
            ContactsNumbersList.add(phoneNumber);
        }

    } …
Run Code Online (Sandbox Code Playgroud)

java android hashset

0
推荐指数
1
解决办法
63
查看次数

标签 统计

android ×2

hashset ×1

java ×1

proguard ×1