2017-06-04 64 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 

}

相關問題