Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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
MBTilesWriter java.lang.UnsatifiedLinkError slice-sqlite-jdbc-3.8.7_Java_Android_Sqlite_Android Studio - Fatal编程技术网

MBTilesWriter java.lang.UnsatifiedLinkError slice-sqlite-jdbc-3.8.7

MBTilesWriter java.lang.UnsatifiedLinkError slice-sqlite-jdbc-3.8.7,java,android,sqlite,android-studio,Java,Android,Sqlite,Android Studio,我在Android应用程序中使用writer在AsyncTask类中创建一个新的.mbtiles文件 以下是我的java代码: private class FetchData extends AsyncTask<String, Void, String> { private Exception exception; @Override protected String doInBackground(String... routeSelected) { MBTil

我在Android应用程序中使用writer在AsyncTask类中创建一个新的.mbtiles文件

以下是我的java代码:

private class FetchData extends AsyncTask<String, Void, String> {
  private Exception exception;

  @Override
  protected String doInBackground(String... routeSelected) {
    MBTilesWriter w = null;
    String filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyRoutes/" + routeSelected;
    try {
      outputFile = new File(filePath);
      w = new MBTilesWriter(outputFile);
      new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyRoutes").mkdirs();
    } catch (MBTilesWriteException e) {
      this.exception = e;
      System.out.println("exception: " + e);
      return "";
    }

    //Irrelevant code removed here...

    return filePath;
  }
}
mbtiles4j实际上包含在我的项目中:参见屏幕截图。通过build.gradle包含它还有其他问题,所以我设法像这样解决了它。mbtilesreader工作正常

编辑:禁用即时运行,错误代码为:找不到“libsqlitejdbc.so”


感谢@Morrison Chang和@

我不得不为特定的Android实现重写MBTilesWriter。

您是否尝试禁用instant run()并遇到同样的问题?禁用了它,现在错误被更具体地指定:找不到“libsqlitejdbc.so”我认为您需要找到一个特定于Android的SQLite JDBC驱动程序/库,并对MBTilesWriter进行相应的更改。是的,驱动程序是硬编码的,因此我必须对其进行更改。谢谢
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    //compile 'org.imintel:mbtiles4j:1.0.5'
    compile 'org.xerial:sqlite-jdbc:3.8.7'
    compile 'commons-io:commons-io:2.5'