2017-06-04 65 views
-1

我的应用程序工作api23并坠毁,机上api11或android4 我觉得G类导致崩溃。类G中的 我已将assets资源文件夹上的sqlite数据库复制到外部存储。 当我明确机器人:名字=“G”上androidmanifest我的应用程序上api11但在按钮,读取数据库布局点击运行,则不会在我的项目从数据库中读取并坠毁我的应用程序我的应用程序工作api23并坠毁,机上api11

androidmanifest is= 
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="view.viramaham.quiz.viraquiz"> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

<application 

    android:name=".G" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:roundIcon="@mipmap/ic_launcher_round" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 

    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

    </activity> 

    <activity android:name=".Main_soalat"> 

    </activity> 

    <activity android:name=".pasokhnameh"> 

    </activity> 

    </application> 
</manifest> 

和G级is =

package view.viramaham.quiz.viraquiz; 
import android.app.Application; 
import android.content.Context; 
import android.content.Intent; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Environment; 
import android.support.v7.app.AppCompatActivity; 

import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 




public class G extends Application { 
public static Context context; 
public static String SDK_DIR =  Environment.getExternalStorageDirectory().getAbsolutePath(); 
public static String APP_DIR = SDK_DIR + "/database/"; 
public static SQLiteDatabase database; 


@Override 
public void onCreate() { 

    super.onCreate(); 


    context = getApplicationContext(); 
    File file = new File(APP_DIR); 

    if (!file.exists()) { 
     try { 
      file.mkdirs(); 
      file.createNewFile(); 
       copyFromAssets(getBaseContext().  getAssets() . open  ("viraquiz.sqlite"), 
        new FileOutputStream(APP_DIR + "/viraquiz.sqlite")); 

     } catch (IOException e) { 

      e.printStackTrace(); 
     } 
    }//payandatabase 



}//oncreate 

public void copyFromAssets(InputStream inputStream, OutputStream outputStream) { 

    byte[] buffer = new byte[1024]; 
    int length; 
    try { 
     while ((length = inputStream.read(buffer)) > 0) { 
      outputStream.write(buffer, 0, length); 

     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    try { 
     inputStream.close(); 
     outputStream.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 


}//payan copyFromAssets 



} 
+1

你可以发布你的崩溃日志 – Yupi

+0

您可以发布您的build.gradle? –

+0

你为什么不使用[SQLiteAssetHelper(http://jgilfelt.github.io/android-sqlite-asset-helper/)? –

回答

0

api 11第一个检查类G.我的类有一个eror.i更改类G并在所有API上工作我的程序。 G级是=

package view.viramaham.quiz.viraquiz; 
import android.app.Application; 
import android.content.Context; 
import android.content.Intent; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Environment; 
import android.support.v7.app.AppCompatActivity; 

import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 




public class G extends Application { 
public static Context context; 
public static String SDK_DIR = Environment.getExternalStorageDirectory().getAbsolutePath(); 
public static String APP_DIR = SDK_DIR + "/database/"; 
public static SQLiteDatabase database; 


@Override 
public void onCreate() { 

    super.onCreate(); 


    context = getApplicationContext(); 
    File file = new File(APP_DIR); 

    if (!file.exists()) { 
     try { 
      file.mkdirs(); 
      file.createNewFile(); 
      copyFromAssets(getBaseContext().getAssets().open("viraquiz.sqlite"), 
        new FileOutputStream(APP_DIR + "/viraquiz.sqlite")); 

     } catch (IOException e) { 

      e.printStackTrace(); 
     } 
    }//payandatabase 



}//oncreate 

public void copyFromAssets(InputStream inputStream, OutputStream outputStream) { 

    byte[] buffer = new byte[1024]; 
    int length; 
    try { 
     while ((length = inputStream.read(buffer)) > 0) { 
      outputStream.write(buffer, 0, length); 

     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    try { 
     inputStream.close(); 
     outputStream.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 


}//payan copyFromAssets 

}

相关问题