我在 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 反编译器
看到以下输出
我的问题是为什么 BluetoothAdapter
类没有被混淆。为什么 ProGuard 不将自己的命名添加到默认类(例如 BluetoothAdapter
)中。我是否需要向配置文件添加任何参数才能混淆适配器类,或者这是不可能的?
请帮我解决这个问题
最佳答案
BluetoothAdapter
类是 android API (android.bluetooth.BluetoothAdapter
) 的一部分,proguard 无法混淆对其的引用,否则虚拟机将无法任何方式知道你正在使用这个类。混淆仅在您的类上进行,不会篡改您无法控制的类。
关于java - ProGuard 不会混淆蓝牙类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26381094/