小编Vic*_*rte的帖子

如何在Java中使用JNA lib使用C#函数

我花了很多时间尝试在我的Java应用程序中使用C#函数但没有成功......我在C#中编写了以下lib:

public class Converter
{

    public Converter()
    {
    }

    public bool ConvertHtmlToPdf(String directoryPath)
    {
        //DO SOMETHING
    }
}
Run Code Online (Sandbox Code Playgroud)

这个dll调用另一个dll进行一些操作,但是当我编译它时,我可以在我的Realse文件夹中找到Dlls,一切似乎都没问题,所以我使用32位选项,64位和任何CPU选项编译它只是为了确保它不是我的问题.

使用Dependency Walker在32位和任何CPU选项中分析我的dll文件,它说IESHIMS.DLL无法找到,并显示以下消息:

警告:找不到至少一个延迟加载依赖项模块.警告:由于延迟加载相关模块中缺少导出功能,至少有一个模块具有未解析的导入.

64位文件没有出现,但我找不到我的ConvertHtmlToPdf函数.

由于我不知道它是否相关,我的第二步是在Java代码中.

要加载我的库我做:

System.setProperty("jna.library.path", "C:\\Program Files (x86)\\Facilit\\Target App\\lib");
Run Code Online (Sandbox Code Playgroud)

和:

public interface IConversorLibrary extends Library {

    IConversorLibrary INSTANCE = (IConversorLibrary) Native.loadLibrary("converter", IConversorLibrary.class);

    void ConvertHtmlToPdf(String directoryPath);
}
Run Code Online (Sandbox Code Playgroud)

(lib似乎加载成功,因为如果我尝试删除运行它的应用程序的dll文件,则表示无法删除因为它正在使用中)并最终:

IConversorLibrary.INSTANCE.ConvertHtmlToPdf(directoryPath);
Run Code Online (Sandbox Code Playgroud)

但结果并非如我所愿:

java.lang.UnsatisfiedLinkError: Error looking up function 'ConvertHtmlToPdf': Could not find the specified procedure.
Run Code Online (Sandbox Code Playgroud)

我不知道我做错了什么,我尝试了许多教程和很多东西,但是任何事情似乎都有效,任何帮助都非常感激.

c# java dll jna

5
推荐指数
1
解决办法
7391
查看次数

如何从具有多个点的 geoJson 在地图上添加标记(传单)

我正在尝试使用带有点的 geoJson 在地图上添加一些标记,我正在遵循传单文档,但它仍然说:

\n\n
\n

错误:GeoJSON 对象无效。
\n throw new Error(\'无效的 GeoJSON 对象。\');

\n
\n\n

我的 GeoJson:

\n\n
var meta1nJson={\n  "type": "FeatureCollection",\n  "features": [\n    {\n      "type": "Feature",\n      "geometry": {\n        "type": "Point",\n        "coordinates": [\n          -38.3613558,\n          -8.8044875\n        ]\n      },\n      "properties": {\n        "Ordem": "193",\n        "Eixo": "Leste",\n        "Meta": "1L",\n        "Municipio": "Petrol\xc3\xa2ndia",\n        "Estado": "PE",\n        "Nome da Comunidade": "Agrovila 4"\n      }\n    },\n    {\n      "type": "Feature",\n      "geometry": {\n        "type": "Point",\n        "coordinates": [\n          -38.3445892,\n          -8.7940031\n        ]\n      },\n      "properties": {\n        "Ordem": "194",\n        "Eixo": "Leste",\n        "Meta": "1L",\n        "Municipio": …
Run Code Online (Sandbox Code Playgroud)

javascript leaflet

5
推荐指数
1
解决办法
2万
查看次数

如何在JavaFX中使用来自另一个Controller的变量

我有两个场景Login.fxml和MainView.fxml以及两个不同的控制器LoginController.java和MainViewControler.java

在LoginController中,我执行整个登录过程并获取JSessionID的值并将其存储在对象中,如下所示:

loginGateway = loginGateway(gateway);
Run Code Online (Sandbox Code Playgroud)

现在在MainViewController中我需要使用this对象(loginGateway)来获取getJSessionID并向服务器发出其他请求.但是如何在另一个Controller类(MainViewController.java)中访问此对象?

java controller javafx viewcontroller javafx-2

4
推荐指数
1
解决办法
9793
查看次数

在android下载大文件的最佳方法?

我需要在我的应用程序上下载一个大文件(差不多2gb),我想知道最好的方法是什么,以及一些libs来帮助我.首先,我查看了Android异步Http库,但我没有找到显示如何发布进度或启动,暂停下载的示例.然后我不知道我是否应该使用这个lib或只是使用一个标准的http commons.其他问题是,我应该使用服务来下载我的文件吗?

你们可以给一个提示,怎么做?

android

4
推荐指数
1
解决办法
2万
查看次数

带有cookie身份验证的DownloadManager

我正在尝试使用DownloadManager从我的服务器解析带有JSESSIONID的cookie来获取一个zip文件.我正在使用HTTPCLIENT lib获取此JSESSIONID所有进程登录并设置变量JSESSIONID以供稍后在我的DownloadManager请求中使用.

我的下载请求:

    DownloadManager.Request request = new DownloadManager.Request(Uri.parse(htmlUrlDownload));

    request.addRequestHeader("Cookie", "JSESSIONID=" + JSESSIONID);
    request.addRequestHeader(Constants.USER_AGENT, Constants.TARGET_REQUEST_HEADER);

    request.setDescription("Baixando " + metaDado.getType());
    request.setTitle("Download");
    request.allowScanningByMediaScanner();
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

    String nameFile = offlineUuid + ".zip";

    fileName = nameFile;

    filePath = Environment.getExternalStorageDirectory() + File.separator + Environment.DIRECTORY_DOWNLOADS
            + File.separator + fileName;

    request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, nameFile);

    final DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);

    final long downloadId = manager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)

问题是下载永远不会启动,C​​OLUMN_REASON会将代码返回给ERROR_UNHANDLED_HTTP_CODE

但是,如果我尝试使用Dropbox链接下载相同的文件而无需身份验证或使用httpclient,它的工作完美,我做错了什么?

如何获得更好的消息错误?

android download-manager android-download-manager

4
推荐指数
1
解决办法
3887
查看次数

如何使用javaFx更新TableView Row

我正在尝试进行一些下载并显示表格中的进度:

在此输入图像描述

要做到这一点,我正在使用以下类:

public class DownloadDataTable {


    private SimpleDoubleProperty progress;
    private SimpleStringProperty type;
    private SimpleStringProperty status;

    public DownloadDataTable(double progress, String type, String status) {
        this.progress = new SimpleDoubleProperty(progress);
        this.type = new SimpleStringProperty(type);
        this.status = new SimpleStringProperty(status);
    }

    public double getProgress() {
        return progress.get();
    }

    public void setProgress(double progress) {
        this.progress.set(progress);
    }

    public String getType() {
        String retorno;
        if (type==null){
            retorno="";
        }else{
            retorno=type.get();
        }
        return retorno;

    }

    public void setType (String type) {
        this.type.set(type);
    }

    public String getStatus(){
        String retorno;
        if (status==null){ …
Run Code Online (Sandbox Code Playgroud)

javafx tableview javafx-2

4
推荐指数
1
解决办法
9614
查看次数

如何仅为运行测试设置不同的 AndroidManifest.xml

我有一个具有最简单清单的库

<manifest package="com.xxx.xxx.android" />

但是这个库需要从 Android Manifest 获取两个元数据值才能正常工作,因此为了运行我的测试,我添加了src/test/AndroidManifest.xml以下代码:

<manifest package="com.xxx.xxx.android"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <application>
        <meta-data
            android:name="var1"
            android:value="value1"/>
        <meta-data
            android:name="var2"
            android:value="value2"/>
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

正如我从文档中读到的那样,我必须AndroidManifest.xmlgradle. 我正在尝试这样做:

android {
    ...
    buildTypes {
        debug {
            testCoverageEnabled true
        }

        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    sourceSets {
        String sharedTestDir = 'src/sharedTest/java'
        String testManifest = 'src/test/AndroidManifest.xml'
        test {
            java.srcDir sharedTestDir
            manifest.srcFile testManifest
        }
        androidTest {
            java.srcDir sharedTestDir
            manifest.srcFile testManifest
        }
    }

    testOptions.unitTests.includeAndroidResources true
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我无法在测试中获取元数据。仅当我设置manifest.srcFilefor main …

android gradle

4
推荐指数
1
解决办法
3301
查看次数

使用相同的Intent服务进行并行下载

我有一个Intent服务处理一些文件的下载和解压缩.现在我正在尝试使用同一个Intent Service下载同步文件,但是当我尝试启动第二次下载时,它只是将新下载排入队列,我怎么能不排队我的下载?

Intent service = new Intent(getActivity(), DownloadAndUnzipService.class);

service.putExtra("post", false);
service.putExtra("url", htmlUrlDownload);
service.putExtra("filePath", filePath);
service.putExtra("destinationPath", destinationPath);
service.putExtra("receiver", mReceiver);
service.putExtra("typeDownload", Constants.HTML);
service.putExtra("metaDado", downloadContent.getMetaDado());
service.putExtra("isResuming", false);

getActivity().startService(service);
Run Code Online (Sandbox Code Playgroud)

我没有放下DownloadAndUnzipService代码,因为它太长了,我认为它没有帮助,但如果有用,我可以更新它.

android

3
推荐指数
1
解决办法
2474
查看次数

如何使用Windows,Mac和Linux的通用文件路径保存文件?

我有一个aplicattion需要创建一个文件夹来解压缩一些文件,但我想传递一个文件路径,我的应用程序可以运行,创建和保存我的文件在任何操作系统,但我不知道应该是什么输出路径要做到这一点.

例如:

File folder = new File(outputFolder);
if (!folder.exists()) {
    folder.mkdir();
}
Run Code Online (Sandbox Code Playgroud)

我应该在outputFolder中使用什么路径在任何操作系统(Windows,Mac或Linux)的Documents/UnzipTest中创建我的文件夹?

java

2
推荐指数
1
解决办法
7574
查看次数

在动态生成TableRow时,如何拉伸和缩小列?

我正在使用TableLayout并使用自定义行动态填充它,但现在如果我使用android:stretchColumns android:shrinkColumns它不起作用.

我的活动布局:

<LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView 
        android:text="@string/offline"
        android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginTop="20dp"
    android:textStyle="bold"
    android:textSize="20sp"
    android:textColor="@color/dimGray"
    />

    <TableLayout
    android:id="@+id/download_full_table"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginTop="20dp"
    android:stretchColumns="2"
    android:shrinkColumns="1"
    >
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我的行布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:orientation="vertical">

    <TableRow 
        android:background="@color/white"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:stretchColumns="*">

        <TextView

            android:id="@+id/row_name"
            android:text="@string/empty" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:textSize="12sp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="7dp"
            android:layout_marginRight="10dp"
             />

        <TextView
            android:id="@+id/row_size"
            android:text="@string/empty" 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/lightGray"
            android:layout_marginTop="7dp"
             />

        <Button 
            android:id="@+id/row_btnDownload"
            android:text="@string/baixar"
            android:layout_width="wrap_content" 
            android:layout_height="35dp"
            android:background="@drawable/btn_baixar_verde"
            android:textColor="@color/white"
            android:textSize="13sp"
            android:layout_marginTop="7dp"
            android:layout_marginBottom="7dp"
            android:layout_marginLeft="7dp"
            android:layout_marginRight="15dp"
            android:textStyle="bold"

            />

    </TableRow>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我的代码: …

android

2
推荐指数
1
解决办法
6319
查看次数

有些人在目标C中使用GOTO语句的原因是什么?

我没有ObjectiveC(IOS)开发的经验,但我看到太多好奇的代码,发现有些人使用GOTO语句(JsonKit库,一些代码游戏等),甚至Apple的源代码也知道使用它(你可以看到这里).

正如我在学术生涯中所学到的,使用GOTO是一个非常糟糕的发展实践,必须要避免,那么为什么它是IOS开发中的"共同"实践,是否有一些特殊的原因?

objective-c ios

2
推荐指数
1
解决办法
423
查看次数

如何将ArrayList传递给另一个活动

我试图通过这种方式将ArrayList传递给我的新活动:

Intent it = new Intent(activity, DownloadSelectionActivity.class);
            it.putExtra("anos", yearList);
            activity.startActivity(new Intent(activity, DownloadSelectionActivity.class));
Run Code Online (Sandbox Code Playgroud)

我的yearList没关系,我可以看到Log中的所有值,但是当我尝试使用下面的代码获取它时,它返回一个NullPointerExcepetion:

protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.activity_downloadselection);

        ArrayList<Integer> anosLista = (ArrayList<Integer>) getIntent().getSerializableExtra("anos");


        for (Integer anos : anosLista) {
            Log.d(Constants.DOWNLOAD_SELECTED_ACTIVITY, String.valueOf(anos));
        }
Run Code Online (Sandbox Code Playgroud)

例外:

03-25 20:11:18.144: E/AndroidRuntime(7899): FATAL EXCEPTION: main
03-25 20:11:18.144: E/AndroidRuntime(7899): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.facilit.target.app.android/br.com.facilit.target.app.android.DownloadSelectionActivity}: java.lang.NullPointerException
03-25 20:11:18.144: E/AndroidRuntime(7899):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
03-25 20:11:18.144: E/AndroidRuntime(7899):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
03-25 20:11:18.144: E/AndroidRuntime(7899):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-25 20:11:18.144: E/AndroidRuntime(7899):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
03-25 20:11:18.144: E/AndroidRuntime(7899):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-25 20:11:18.144: E/AndroidRuntime(7899): …
Run Code Online (Sandbox Code Playgroud)

android

0
推荐指数
1
解决办法
68
查看次数