Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当proguard启用时,sqlite中的where子句正在使我的应用程序崩溃_Android_Sqlite - Fatal编程技术网

Android 当proguard启用时,sqlite中的where子句正在使我的应用程序崩溃

Android 当proguard启用时,sqlite中的where子句正在使我的应用程序崩溃,android,sqlite,Android,Sqlite,我正在开发一个android应用程序,它使用ORMlite库访问sqlite数据库。情况如下 我的应用程序在调试模式下运行良好,即没有混淆 当我启用proguard时,应用程序在我使用where子句从sqlite数据库访问数据的那一行崩溃 如果我从代码中删除WHERE子句部分,即使在混淆之后,应用程序也可以正常运行 请查看我的proguard-project.txt和源代码 -keep class com.j256.** -keepclassmembers class com.j256.** {

我正在开发一个android应用程序,它使用ORMlite库访问sqlite数据库。情况如下

  • 我的应用程序在调试模式下运行良好,即没有混淆
  • 当我启用proguard时,应用程序在我使用where子句从sqlite数据库访问数据的那一行崩溃
  • 如果我从代码中删除WHERE子句部分,即使在混淆之后,应用程序也可以正常运行
  • 请查看我的proguard-project.txt和源代码

    -keep class com.j256.**
    -keepclassmembers class com.j256.** { *; }
    -keep enum com.j256.**
    -keepclassmembers enum com.j256.** { *; }
    -keep interface com.j256.**
    -keepclassmembers interface com.j256.** { *; }
    
    -keep class com.j256.** {
        *;
    }
    
    -keepclassmembers class * {
    public <init>(android.content.Context);
    }
    
    -keepclasseswithmembers class * {
        public <init>(android.content.Context, android.util.AttributeSet);
    }
    
    -keepclasseswithmembers class * implements android.os.Parcelable {
        static android.os.Parcelable$Creator CREATOR;
    }
    
    -mergeinterfacesaggressively
    -allowaccessmodification
    -optimizationpasses 5
    
    -verbose
    -dontskipnonpubliclibraryclasses
    -dontpreverify
    
    
    -keepattributes *Annotation*
    -keepattributes Signature
    -keepattributes EnclosingMethod
    
    -keep public class * extends android.app.Acitivity
    -keep public class * extends android.app.Application
    -keep public class * extends android.app.Service
    -keep public class * extends android.content.BroadcastReceiver
    -keep public interface com.google.android.vending.licensing.ILicensingService
    -keep public class com.adityabirla.firstresponse.database.ormlite.model.Contact
    
    -keep public class * extends android.view.View {
        public <init>(android.content.Context);
        public <init>(android.content.Context, android.util.AttributeSet);
        public <init>(android.content.Context, android.util.AttributeSet, int);
        public void set*(...);
    }
    
    -保留com.j256类**
    -keepclassmembers类com.j256.*{*;}
    -保留enum com.j256**
    -keepclassmembers enum com.j256.*{*;}
    -保留com.j256接口**
    -keepclassmembers接口com.j256.*{*;}
    -保留com.j256类。**{
    *;
    }
    -keepclassmembers类*{
    public(android.content.Context);
    }
    -keepclassswithmembers类*{
    public(android.content.Context、android.util.AttributeSet);
    }
    -KeepClassSwithMembers类*实现android.os.Parcelable{
    静态android.os.Parcelable$Creator;
    }
    -积极地结合
    -允许访问修改
    -优化过程5
    -冗长的
    -DontskipnonPublicLibraryClass
    -不要翻转
    -keepattributes*注释*
    -保留署名
    -keepattributes封闭方法
    -keep public class*扩展了android.app.Acitivity
    -keep public class*扩展android.app.Application
    -keep public class*扩展了android.app.Service
    -keep public class*扩展了android.content.BroadcastReceiver
    -保持公共界面com.google.android.vending.licensing.ilicingservice
    -保持公共类com.adityabirla.firstresponse.database.ormlite.model.Contact
    -keep public class*扩展了android.view.view{
    public(android.content.Context);
    public(android.content.Context、android.util.AttributeSet);
    public(android.content.Context,android.util.AttributeSet,int);
    公共无效集*(…);
    }
    
    Java源文件

        private void loadPersonalGrid() {
            try {
                Dao<Note, Integer> noteDao = ORMManager.getInstance(
                        getBaseContext()).getNoteDao();
    
                QueryBuilder<Note, Integer> queryBuilder = noteDao.queryBuilder();
    
    //          queryBuilder.where().eq("category", Note.NOTE_CATEGORY_PERSONAL); // CRASHES WHEN ENABLED
                PreparedQuery<Note> preparedQuery = queryBuilder.prepare();
                List<Note> noteList = noteDao.query(preparedQuery);
                NoteGridListAdapter adapter = new NoteGridListAdapter(this, noteList, NOTE_TYPE.PERSONAL, this);
    
                grid_personal.setAdapter(adapter);
                grid_personal.setExpanded(true);
    
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    
    private void loadPersonalGrid(){
    试一试{
    Dao noteDao=ORMManager.getInstance(
    getBaseContext()).getNoteDao();
    QueryBuilder QueryBuilder=noteDao.QueryBuilder();
    //queryBuilder.where().eq(“category”,Note.Note_category_PERSONAL);//启用时崩溃
    PreparedQuery PreparedQuery=queryBuilder.prepare();
    List noteList=noteDao.query(preparedQuery);
    NoteGridListAdapter=新的NoteGridListAdapter(this,noteList,NOTE_TYPE.PERSONAL,this);
    网格_个人设置适配器(适配器);
    网格_personal.setExpanded(真);
    }捕获(SQLE异常){
    e、 printStackTrace();
    }
    }
    
    能否添加异常的回溯?您可以使用回溯。