我尝试将我的 Android 注释升级为:
implementation "androidx.annotation:annotation:1.6.0"
...但是现在这三个导入失败了:
import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
实施这些的新方法是什么?我需要 @Keep 来确保 Java 类存在,以便我的本机代码调用它们。
(注:谷歌官方文档假装没有任何改变,一切都很好)
(注2:回退到注释:1.5.0 可以,但是新的解决方案是什么?)
这件事有后续吗?
我在对 AOSP 框架进行一些修改时遇到了类似的问题,但仅限于 @Keep 注释。
对于您的问题,您是否尝试过使用 proguard 规则?您可以在这里了解有关它们的更多信息:http://developer.android.com/guide/developing/tools/proguard.html.
这样的东西应该可以替代 @Keep 注释。:
-keep public class com.example.** { public protected *; }
AFAIK @NonNull 注释仍然存在,我没有遇到任何编译或运行时问题。
我当前的问题是 AOSP 的 CTS 测试要求 BOOTCLASSPATH 或 SHAREDLIBS 中不存在
androidx
引用,这是我需要删除的最后一个引用。