I have occurred the above-mentioned error and I could not find any answer from the internet as well as several books. If anyone can give me a solution, it will be very helpful for me to make my SQLite database
classes.dex Type com.readystatesoftware.android.sqliteassethelper.BuildConfig is defined multiple times: C:\Users...gradle\caches\transforms-3\b2257b2869a3735d41009b6b49890d4f\transformed\jetified-sqliteassethelper-2.0.1\classes.dex, C:\Users..\Desktop\Android-App\Assets_DB\app\build\intermediates\external_file_lib_dex_archives\debug\0_jetified-sqliteassethelper-2.0.1.jar:classes.dex com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: C:\Users\Hayder.gradle\caches\transforms-3\b2257b2869a3735d41009b6b49890d4f\transformed\jetified-sqliteassethelper-2.0.1\classes.dex com.android.tools.r8.internal.b: Type com.readystatesoftware.android.sqliteassethelper.BuildConfig is defined multiple times: C:\Users\Hayder.gradle\caches\transforms-3\b2257b2869a3735d41009b6b49890d4f\transformed\jetified-sqliteassethelper-2.0.1\classes.dex, C:\Users\Hayder\Desktop\Android-App\Assets_DB\app\build\intermediates\external_file_lib_dex_archives\debug\0_jetified-sqliteassethelper-2.0.1.jar:classes.dex
public class MyDatabase extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "Engin.db";
private static final int DATABASE_VERSION = 1;
String sqlTables;
public MyDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public Cursor getEmployees() {
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String [] sqlSelect = {"REG_NUMBER"};
sqlTables = "EngineDetail_Table";
qb.setTables(sqlTables);
Cursor c = qb.query(db, sqlSelect, null, null,
null, null, null);
c.moveToFirst();
return c;
}
}
Here is MainActivity.java class
public class MainActivity extends ListActivity {
private Cursor regNumbers;
private MyDatabase db;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
db = new MyDatabase(this);
regNumbers = db.getEmployees(); // you would not typically call this on the main thread
Log.d("Reg Numbers" , regNumbers.getString(Integer.parseInt("REG_NUMBER")));
}
@Override
protected void onDestroy() {
super.onDestroy();
regNumbers.close();
db.close();
}
}
CodePudding user response:
implementation files('libs/sqliteassethelper-2.0.1.jar') implementation fileTree(dir: 'libs', include: ['*.jar'])
This includes the jar twice from libs. It's not an error but redundant anyway.
implementation 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'
This includes the library from a maven repository.
Either delete the jar file in libs and its implementation
dependency, or delete the maven implementation
dependency.