小编tyn*_*ynn的帖子

图像(base64)无法正确上传

不幸的是,当我尝试将一些图像从Android设备上传到数据库时,我遇到了一些问题.图像位于文件夹中.此文件夹包含图像以及其他内容.我不知道图像的名称,我只需要上传图像(jpg).在我上传图像之前,我需要使用base64对它们进行编码.

首先,我从文件夹中获取jpg文件.然后我从图像名称中获取ID.之后我通过base64编码:

Button upload = (Button) findViewById(R.id.upload);
upload.setOnClickListener(new View.OnClickListener() {
    public void onClick(View arg0) {
        String path = Environment.getExternalStorageDirectory().getPath();
        File dir = new File(path);
        File[] files = dir.listFiles();

        for (int i = 0; i < files.length; ++i) {
            if (files[i].getName().endsWith(".jpg")) {
                pics = new File(String.valueOf(files[i]));
                id = String.valueOf(files[i]);
                String sub = id.substring(id.lastIndexOf("/") + 1);
                int index = sub.indexOf("_");
                String book;
                if (index >= 0) {
                    book = sub.substring(0, index);
                    ID = book;
                    Log.e("ID", ID);
                }
                Bitmap imagex = BitmapFactory.decodeFile(pics.getAbsolutePath());
                ByteArrayOutputStream …
Run Code Online (Sandbox Code Playgroud)

java base64 android android-asynctask

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

如何将const char*从python传递给c函数

ctypes在Python中使用它来打开一个用C++编写的文件.

我的C++代码:

extern "C" {
void openfile(const char *filename) {
    cout<<"File to open for writing = " <<filename<<endl;
    FILE *fp = fopen(filename,"w");
    fprintf(fp,"writing into file");
    fclose(fp);
}
}
Run Code Online (Sandbox Code Playgroud)

我的Python代码:

>>> import ctypes
>>> lib = ctypes.cdll.LoadLibrary('/in/vrtime/mahesh/blue/rnd/software/test/test.so')
>>> outfile = "myfirstfile.txt"
>>> lib.openfile(outfile)
File to open for writing = m
Run Code Online (Sandbox Code Playgroud)

我得到的文件名是m,这是char我文件的第一个字符.

如何将整个字符串传递给C端?

python ctypes python-c-api

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

Kotlin扩展功能通过Intent Extras开始活动

我正在尝试为上下文编写一个kotlin扩展函数,它将使用给定的类名和意图附加列表在android中启动新的活动。我能够成功地开始活动而没有任何额外的东西,但是我面临着他们的问题。

fun <T> Context.openActivity(it: Class<T>, pairs: List<Pair<String, Any>>) {
  var intent = Intent()
  pairs.forEach {
     intent.putExtra(it.first, it.second)
  }
  startActivity(intent)
}
Run Code Online (Sandbox Code Playgroud)

这里的主要问题是-> intent.putExtra()不会将第二个参数设为Any

android kotlin kotlin-android-extensions

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

Android与依赖项appcompat的冲突

我正在尝试将espresso-contrib库添加到我的项目中.这是我的build.gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "example.com.littlebox_hari"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    /*configurations.all {
        resolutionStrategy {
            force 'com.android.support:appcompat-v7:23.4.0'
        }
    }*/
}


dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.squareup.retrofit2:retrofit:2.0.0'
    compile 'com.squareup.retrofit2:converter-gson:2.0.0'
    androidTestCompile 'com.android.support.test:runner:0.4'
    androidTestCompile 'com.android.support.test:rules:0.4'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2.2'
    androidTestCompile 'com.android.support.test.espresso:espresso-idling-resource:2.2.2'
    compile 'com.android.support:support-annotations:23.4.0'
    testCompile 'com.android.support:support-annotations:23.4.0'
    androidTestCompile 'com.android.support:support-annotations:23.4.0' …
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio android-espresso

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

不兼容的类型,需要 java.lang.Integer[],找到 Int[]?

所以我有一个整数数组“images_array”存储在strings.xml中。我试图将它提取到我的 Websites.java 文件中以使用它来显示图像。

但由于某种原因我收到此错误:

在此处输入图片说明

我尝试将数组存储在与调用它的文件相同的文件中,它可以工作,只是从 strings.xml 调用它对我不起作用。也许我还没有学到什么?

真的很感激任何帮助。

谢谢!

java arrays android

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

debounce,节流阀First和节流阀Last的Flux等效项是什么

debouncethrottleFirst和,throttleLast这在Project Reactor的Flux中最为明显。他们有同行吗?

rx-java project-reactor rx-java2

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

在 kotlin 中,如果没有 @Provides- 或 @Produces- 注解的方法,则无法提供上下文

我在 Kotlin 中使用 Dagger 进行依赖注入。现在这里是必要的课程

活动模块

@Module class ActivityModule (val activity : Activity){
    @Provides
    @ActivityContext
    fun provideContext() : Context{
        return activity
    }
}
Run Code Online (Sandbox Code Playgroud)

活动组件

@PerActivity
@Component(dependencies = arrayOf(ApplicationComponent::class), modules = arrayOf(ActivityModule::class))
interface ActivityComponent {
    fun inject(activity: MainActivity)
}
Run Code Online (Sandbox Code Playgroud)

主要活动

@Inject @ActivityContext lateinit var context:Context
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        DaggerActivityComponent.builder()
.applicationComponent(MainApplication.getInstance().getApplicationComponent()).activityModule(ActivityModule(this)).build()
.inject(this);
Run Code Online (Sandbox Code Playgroud)

现在我收到以下错误

error: android.content.Context cannot be provided without an @Provides- or @Produces-annotated method.
e: 

e:     public abstract void inject(@org.jetbrains.annotations.NotNull()
e:                          ^
e:       android.content.Context is injected at
e:           app.feed.com.ui.MainActivity.context …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection kotlin dagger-2

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

Room <List <T >>的行为不正确?

我有以下查询方法定义:

@Query("SELECT * FROM box_jobs")
fun getAll(): Maybe<List<BoxJob>>
Run Code Online (Sandbox Code Playgroud)

我想返回此查询的结果,如果它不为空,否则返回REST API调用的结果.这是我的逻辑代码:

override fun loadTasks(): Maybe<List<Task>> {
    Log.d(TAG, "Searching tasks in database")
    return boxJobDao.getAll()
            .map { boxJobs -> boxJobMapper.entityListToTaskList(boxJobs) }
            .switchIfEmpty(syncTasks())
}

private fun syncTasks(): Maybe<List<Task>> {
    Log.d(TAG, "Loading tasks from server")
    return api.boxJobs(DEVICE_ID)
            .doOnSuccess({ boxJobDtoList ->
                Log.d(TAG, "${boxJobDtoList.size} box jobs loaded from server")
                saveToDb(boxJobDtoList)
            })
            .doOnError({ error -> Log.d(TAG, "Error during tasks loading", error) })
            .map { boxJobDtoList -> boxJobMapper.dtoListToTaskList(boxJobDtoList) }
            .toMaybe()
}
Run Code Online (Sandbox Code Playgroud)

问题是,总是使用空调用Maybe返回空数据库,因此运算符不起作用.getAll()onSuccess()List<BoxJob>switchIfEmpty()

我认为这是不正确的行为.我是对的还是我做错了什么?这个问题有解决方法吗?

android kotlin rx-java2 android-room

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

xml布局中的ScrollView?

我在布局中使用 ScrollView,如下所示:

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        <!-- my rest xml code-->
    </LinearLayout>

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

然后我的布局预览显示如下:

这是我的布局预览的屏幕截图

为什么布局看起来像这样?!

xml layout android scrollview

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