为什么 Active Android 库报告此错误 = 在 Android 4.1 之前,... 会错误地覆盖 Drawable 中的 package-private 方法
Why the Active Android Library reports this error = Before Android 4.1, ... would have incorrectly overridden the package-private method in Drawable
我使用 Active Android 库,每次启动它时,它都会在 Logcat 中显示给我(Android Studio) , 错误类型 = 警告
完整程序错误图片
- 我也想知道这个问题不会给我带来类似Force Stop
的问题
前两行程序错误(警告):
Logcat
01-04 12:20:20.378 2166-2166/com.xxxx.yyyy W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
01-04 12:20:20.419 2166-2166/com.xxxx.yyyy I/art: Rejecting re-init on previously-failed class java.lang.Class<android.support.v4.app.JobIntentService$JobServiceEngineImpl>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/app/job/JobServiceEngine;
...
AppController.java
public class AppController extends Application {
@Override
public void onCreate() {
super.onCreate();
ActiveAndroid.initialize(this);
}
}
...
AndroidManidest.xml
...
<application
android:name=".AppController"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@stylexxyyTheme"
tools:replace="android:icon">
<meta-data
android:name="AA_DB_NAME"
android:value="RestClient.db" />
<meta-data
android:name="AA_DB_VERSION"
android:value="1" />
<meta-data
android:name="AA_MODELS"
android:value="com.xxxx.yyyyy.model.DBUserInfo" />
...
DBUserInfo.java
@Table(name = "user_info")
public class DBUserInfo extends Model {
@Column(name = "user_id", unique = true, onUniqueConflict = Column.ConflictAction.REPLACE)
public int user_id;
@Column(name = "name")
public String name;
public DBUserInfo() {
super();
}
public DBUserInfo(int user_id, String name) {
this.user_id = user_id;
this.name = name;
}
public static DBUserInfo getRandom() {
return new Select().from(DBUserInfo.class).executeSingle();
}
public static DBUserInfo getUserInfo() {
return new Select().from(DBUserInfo.class).executeSingle();
}
public List<DBUserInfo> getAll() {
return getMany(DBUserInfo.class, "name");
}
public static List<DBUserInfo> getAll() {
return new Select().from(DBUserInfo.class).orderBy("user_id ASC").execute();
}
}
我没有看到任何与您的错误相关的代码。您是否分享了发生问题的代码?您是在 KitKat 或以前的设备上进行测试吗? KitKat 和更早版本的 Vector Graphics 存在问题,您必须启用 Vector Support 并处理所有图像 src 上的 vectorSupport 标签。所以我不得不假设你的项目中有可绘制的矢量,并将它们放在错误的文件夹中,或者没有根据该错误正确处理它们,但没有更多细节,这只是一个猜测。
请记住,像 no-dpi 这样的文件夹在 KitKat 时代并不存在,而且如果管理不当,内存问题会疯狂发生。
我使用 Active Android 库,每次启动它时,它都会在 Logcat 中显示给我(Android Studio) , 错误类型 = 警告
完整程序错误图片
- 我也想知道这个问题不会给我带来类似Force Stop 的问题
前两行程序错误(警告):
Logcat
01-04 12:20:20.378 2166-2166/com.xxxx.yyyy W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
01-04 12:20:20.419 2166-2166/com.xxxx.yyyy I/art: Rejecting re-init on previously-failed class java.lang.Class<android.support.v4.app.JobIntentService$JobServiceEngineImpl>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/app/job/JobServiceEngine;
...
AppController.java
public class AppController extends Application {
@Override
public void onCreate() {
super.onCreate();
ActiveAndroid.initialize(this);
}
}
...
AndroidManidest.xml
...
<application
android:name=".AppController"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@stylexxyyTheme"
tools:replace="android:icon">
<meta-data
android:name="AA_DB_NAME"
android:value="RestClient.db" />
<meta-data
android:name="AA_DB_VERSION"
android:value="1" />
<meta-data
android:name="AA_MODELS"
android:value="com.xxxx.yyyyy.model.DBUserInfo" />
...
DBUserInfo.java
@Table(name = "user_info")
public class DBUserInfo extends Model {
@Column(name = "user_id", unique = true, onUniqueConflict = Column.ConflictAction.REPLACE)
public int user_id;
@Column(name = "name")
public String name;
public DBUserInfo() {
super();
}
public DBUserInfo(int user_id, String name) {
this.user_id = user_id;
this.name = name;
}
public static DBUserInfo getRandom() {
return new Select().from(DBUserInfo.class).executeSingle();
}
public static DBUserInfo getUserInfo() {
return new Select().from(DBUserInfo.class).executeSingle();
}
public List<DBUserInfo> getAll() {
return getMany(DBUserInfo.class, "name");
}
public static List<DBUserInfo> getAll() {
return new Select().from(DBUserInfo.class).orderBy("user_id ASC").execute();
}
}
我没有看到任何与您的错误相关的代码。您是否分享了发生问题的代码?您是在 KitKat 或以前的设备上进行测试吗? KitKat 和更早版本的 Vector Graphics 存在问题,您必须启用 Vector Support 并处理所有图像 src 上的 vectorSupport 标签。所以我不得不假设你的项目中有可绘制的矢量,并将它们放在错误的文件夹中,或者没有根据该错误正确处理它们,但没有更多细节,这只是一个猜测。
请记住,像 no-dpi 这样的文件夹在 KitKat 时代并不存在,而且如果管理不当,内存问题会疯狂发生。