私はアンドロイドスタジオが新しく、最近注文したり、カートに何かを追加したり、アカウントのページから詳細を確認したりできるものを注文できるアプリを開発しています。カートをクリックするか、カートにアイテムを追加しようとした場合、アプリがクラッシュし、これが最大を示しています。解決方法:java.util.UnknownFormatConversionException:Conversion = '' '?
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.sakaaz.sakaaz, PID: 30731
java.util.UnknownFormatConversionException: Conversion = '''
at java.util.Formatter$FormatSpecifier.conversion(Formatter.java:2730)
at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:2759)
at java.util.Formatter$FormatSpecifierParser.<init>(Formatter.java:2591)
at java.util.Formatter.parse(Formatter.java:2524)
at java.util.Formatter.format(Formatter.java:2472)
at java.util.Formatter.format(Formatter.java:2426)
at java.lang.String.format(String.java:2626)
at edmt.dev.androidsakaaz.Database.Database.addToCart(Database.java:55)
at edmt.dev.androidsakaaz.MakeupDetail$1.onClick(MakeupDetail.java:59)
at android.view.View.performClick(View.java:6257)
at android.view.View$PerformClick.run(View.java:23705)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6836)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
私は何が悪かったのか見当がつかない。ここに私のデータベースクラスです:
public class Database extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "sakaazDB.db";
private static final int DB_VER=1;
public Database(Context context) {
super(context, DATABASE_NAME, null , DB_VER);
}
public List<Order> getCarts()
{
SQLiteDatabase db=getReadableDatabase();
SQLiteQueryBuilder qb= new SQLiteQueryBuilder();
String[] sqlSelect={"ProductName", "ProductId", "Quantity", "Price", "Discount"};
String sqlTable="OrderDetail";
qb.setTables(sqlTable);
Cursor c = qb.query(db,sqlSelect,null,null,null,null,null);
final List<Order> result = new ArrayList<>();
if (c.moveToFirst())
{
do{
result.add(new Order(c.getString(c.getColumnIndex("ProductId")),
c.getString(c.getColumnIndex("ProductName")),
c.getString(c.getColumnIndex("Quantity")),
c.getString(c.getColumnIndex("Price")),
c.getString(c.getColumnIndex("Discount"))
));
}while (c.moveToNext());
}
return result;
}
public void addToCart (Order order)
{
SQLiteDatabase db = getReadableDatabase();
String query = String.format("INSERT INTO OrderDetail(ProductId, ProductName, Quantity, Price, Discount) VALUES ('s%','s%','s%','s%','s%');",
order.getProductId(),
order.getProductName(),
order.getQuantity(),
order.getPrice(),
order.getDiscount());
db.execSQL(query);
}
public void cleanCart()
{
SQLiteDatabase db = getReadableDatabase();
String query = String.format("DELETE FROM OrderDetail");
db.execSQL(query);
}
}
助けてください!
可能な重複(https://stackoverflow.com/questions/16713396/unknownformatconversionexception-is-caused-by-symbol-in- [UnknownFormatConversionExceptionはString.Formatの()内の記号 '%' によって引き起こされます]文字列形式) –