小编Moh*_*ari的帖子

如何启动Manifest中提到的不存在的Activity?

我正在尝试开发一个"动态"Android应用程序.

动态,我在清单中列出了一个在运行时"构建"的活动.

我可以很好地构建所需的活动,但是,当我尝试启动它时,我的应用程序失败了......

    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.research.ps/com.research.Dynamic}: java.lang.ClassNotFoundException: 
Didn't find class "com.research.Dynamic" on path: DexPathList[[zip file "/data/app/com.research.ps-1/base.apk"],nativeLibraryDirectories=[/data/app/com.research.ps-1/lib/arm, 
/data/app/com.research.ps-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以在运行时成功实例化Android Activity?

有没有办法在我的应用程序路径中添加"临时"或"shell"活动?然后用我的动态实例替换"临时"活动?

UPDATE

My Manifest XML包含此条目

<activity
  android:name=".Dynamic"
  android:label="@string/title_activity_dynamic"
  android:theme="@style/AppTheme.NoActionBar" />
Run Code Online (Sandbox Code Playgroud)

但是,我的应用程序中没有包含名为"Dynamic"的Activity.

我正在使用ByteBuddy构建我的动态活动: -

  final Class<? extends android.support.v7.app.AppCompatActivity> dynamicType = new ByteBuddy(ClassFileVersion.JAVA_V8)
            .subclass(android.support.v7.app.AppCompatActivity.class, IMITATE_SUPER_CLASS)
            .name("com.research.Dynamic")
            .make()
            .load(getClass().getClassLoader(), new AndroidClassLoadingStrategy.Wrapping(this.getDir("dexgen", Context.MODE_PRIVATE)))
            .getLoaded();

final Intent intent = new Intent(this, dynamicType);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

android

8
推荐指数
2
解决办法
567
查看次数

java.lang.NoClassDefFoundError:io.reactivex.Observable

当我在带有API 21的手机上的改装API中使用Observable时出现此错误:

java.lang.NoClassDefFoundError: io.reactivex.Observable
Run Code Online (Sandbox Code Playgroud)

但是在使用API​​ 19的电话或使用API​​ 23的模拟器上它可以工作.

这是我的API接口:

import io.reactivex.Observable;
import retrofit2.Response;
import retrofit2.http.Body;
import retrofit2.http.POST;
public interface ApiService {
    /**
     * Created by Mohsen on 5/10/2017.
     *
     */
    @POST("/cp/api/")
    Observable<Response<Integer>> Get_BuyBox_Count(@Body Object request);
}
Run Code Online (Sandbox Code Playgroud)

这是我的改造设置:

    @Provides
    @Application_Scope
    @Store_Retrofit_Qualifier
    public Retrofit Store_retrofit(OkHttpClient client) {
        return new Retrofit.Builder()
                .baseUrl(Urls.Sotre_Base_Url)
                .client(client)
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .addConverterFactory(JSONConverterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }
Run Code Online (Sandbox Code Playgroud)

我的依赖:

    compile 'com.squareup.retrofit2:retrofit:2.2.0'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile 'io.reactivex.rxjava2:rxjava:2.0.1'
    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
    compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
Run Code Online (Sandbox Code Playgroud)

api android retrofit rx-android rx-java2

7
推荐指数
1
解决办法
2481
查看次数

无法解密存储库,请确保输入正确的密码

我无法运行“Fastlane 版本”,因为它显示错误“无法解密存储库,请确保输入正确的密码!”。我确信输入的密码是正确的。我尝试手动删除所有配置文件和证书,但没有成功。

    [13:03:58]: Enter the passphrase that should be used to encrypt/decrypt your certificates
[13:03:58]: This passphrase is specific per repository and will be stored in your local keychain
[13:03:58]: Make sure to remember the password, as you'll need it when you run match on a different machine
[13:03:58]: Passphrase for Match storage: ********
[13:04:10]: Type passphrase again: ********
[13:04:16]: wrong final block length
[13:04:16]: Couldn't decrypt the repo, please make sure you enter the right password!
keychain: "/Users/mohsen/Library/Keychains/login.keychain-db"
version: …
Run Code Online (Sandbox Code Playgroud)

fastlane fastlane-deliver fastlane-match

7
推荐指数
0
解决办法
3274
查看次数

如何在水平回收视图中获取当前位置?

我有一个recyclerview和一个imageview,我想在滚动上更改imageview图像,但我不知道如何获取当前位置,然后从列表中获取我的图像然后将其加载到Picasso到imageview!

这是我的代码:

<ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/main_background"
        android:background="#80000000"
        android:scaleType="centerCrop"
        />

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:layout_centerInParent="true"
        android:layout_marginBottom="30dp"
        android:layout_marginTop="30dp"/>
Run Code Online (Sandbox Code Playgroud)

我的适配器:

public class Place_Adapter extends RecyclerView.Adapter<Place_View_Holder> {
    private List<Place> objects;
    private Activity context;

    public Place_Adapter(List<Place> objects,Activity context){
        this.context=context;
        this.objects=objects;

    }

    @Override
    public Place_View_Holder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.place_item, parent, false);
        Place_View_Holder place_view_holder=new Place_View_Holder(v);
        return place_view_holder;
    }

    @Override
    public void onBindViewHolder(Place_View_Holder holder, int position) {
        Picasso.with(context)
                .load(objects.get(position).getItem_Image())
                .placeholder(R.mipmap.image)
                .error(R.mipmap.image)
                .into(holder.image);
        holder.place_name.setText(objects.get(position).getPName());
        holder.place_in_map.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                context.startActivity(new …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

6
推荐指数
1
解决办法
9005
查看次数