java - ProGuard 不会混淆蓝牙类

标签 java android bluetooth proguard

我在 Android 中使用 ProGuard 来混淆我的代码。我的应用程序使用 Android 蓝牙 API,以下是我的整个代码 fragment 的一部分

  import android.app.Activity;
  import android.bluetooth.BluetoothAdapter;
  import android.os.Bundle;
  import android.widget.Toast;

public class MainActivity extends Activity {

private BluetoothAdapter mBluetoothAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    // If the adapter is null, then Bluetooth is not supported
    if (mBluetoothAdapter == null) {
        Toast.makeText(this, "Bluetooth is not available", Toast.LENGTH_LONG).show();
        finish();
        return;
    }

    //more code over here
}

当我启用 ProGuard 并尝试混淆代码时,我使用 Java 反编译器 看到以下输出

Output

我的问题是为什么 BluetoothAdapter 类没有被混淆。为什么 ProGuard 不将自己的命名添加到默认类(例如 BluetoothAdapter)中。我是否需要向配置文件添加任何参数才能混淆适配器类,或者这是不可能的?

请帮我解决这个问题

最佳答案

BluetoothAdapter 类是 android API (android.bluetooth.BluetoothAdapter) 的一部分,proguard 无法混淆对其的引用,否则虚拟机将无法任何方式知道你正在使用这个类。混淆仅在您的类上进行,不会篡改您无法控制的类。

关于java - ProGuard 不会混淆蓝牙类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26381094/

相关文章:

java - 跳过父构造函数调用祖 parent 的

java - 为什么 C++ 中的 void 方法可以返回空值,而在其他语言中却不能?

java - 如何在 javafx 应用程序中使用 StackOverflow 询问按钮格式?

android - 关于Android studio中gms-play-services appindexing更新到10.2.0

javascript - 获取唯一移动网络客户的数量

android - 如何使用android蓝牙接收串行数据

android - IBeacon Android 中的 "If two apps register ranges with the same id, they clobber eachother"是什么意思

java - 在 fragment 之间传递变量数据时出现 NullPointerException

ios - 在 iOS 设备上写入描述符 BLE

android - Admob - 横幅广告在部署几天后未显示